> Renaud ROSSET
Utiliser les vues indexées

Utiliser les vues indexées

L'un des plus grands avantages des vues indexées est que les requêtes n'ont pas besoin de référencer directement une vue pour utiliser l'index sur la vue. Considérez la vue indexée Product_Totals. Supposons que l'on exécute l'instruction SELECT suivante :

SELECT productid, total_qty = sum(Quantity)
FROM dbo."order details"
GROUP BY

Lire l'article
Créer une vue indexée

Créer une vue indexée

Maintenant que nous avons vu ce qu'on peut et ne peut pas mettre à  l'intérieur de la définition d'une vue, vous voilà  prêt à  créer une vue indexée. La première étape consiste à  définir la vue, comme décrit dans le listing 1. Remarquez la clause with SCHEMABINDING et la spécification

Lire l'article
Créer une vue

Créer une vue

Avant de créer une vue indexée, il faut s'assurer que cette dernière renverra toujours les mêmes résultats pour les mêmes données sous-jacentes. Pour ce faire, on veille à  ce que les conditions SET soient à  l'état ON :

ARITHABORT
CONCAT_NULL_YIELDS_NULL
QUOTED_IDENTIFIER
ANSI_NULLS
ANSI_PADDING
ANSI_WARNINGS

En outre, l'option SET

Lire l'article
A propos de ce cas

A propos de ce cas

Les fonctions de réexécution de trace de SQL Profiler et les procédures cataloguées étendues de trace de SQL Server 7.0 apportent puissance et flexibilité au débogage des problèmes liés aux bases de données. Que vous souhaitiez simplement surveiller votre environnement SQL Server ou que vous ayez besoin de résoudre des

Lire l'article
Quelques détails

Quelques détails

Maintenant que nous avons détaillé les fonctions de trace de Profiler, nous allons pouvoir les utiliser pour examiner de nombreuses situations de base de données. Prenons, par exemple, le cas des requêtes dont l'exécution est jugée anormalement longue. Pour découvrir pourquoi les temps d'exécution sont aussi longs, il suffit de

Lire l'article
Définition d’une trace à  démarrage automatique

Définition d’une trace à  démarrage automatique

On peut utiliser manuellement ces procédures cataloguées pour démarrer et interrompre une trace ou on peut les définir afin qu'elles s'exécutent automatiquement lorsque SQL Server démarre ou en réaction à  certains événements. Pour configurer une trace afin qu'elle démarre automatiquement, il faut commencer par enregistrer sa définition à  l'aide de

Lire l'article
Test des procédures cataloguées

Test des procédures cataloguées

Pour tester ces procédures cataloguées, exécutez le batch suivant :

DECLARE @mydbid int
DECLARE @myspid int
SELECT @mydbid = db_id('pubs'), @myspid = @@spid
EXEC sp_start_mytrace @myspid, @mydbid

Il faut recevoir un message à  l'écran (et un message e-mail, si ce paramètre est défini) présenté sous la forme :

Lire l'article
Modèles d’E/S et journaux de transactions

Modèles d’E/S et journaux de transactions

On a observé que 70 à  90 pour cent des opérations effectuées par AD sur ntds.dit sont des lectures. Ces chiffres n'ont rien de surprenant puisque la fonction première d'AD est l'authentification des utilisateurs, qui nécessite de contrôler les mots de passe contenus dans AD en les comparant aux références

Lire l'article
La reprise après erreur est d’autant plus rapide que la détection de la condition est précoce

La reprise après erreur est d’autant plus rapide que la détection de la condition est précoce

La seconde version du code ci-dessus présente deux inconvénients. Premièrement, elle est moins claire que le code de la première version. Dans cette dernière, l'instruction If autour du calcul montre très clairement la condition d'erreur testée. Deuxièmement, elle est bien plus lente que la première. A l'évidence, la reprise après

Lire l'article
Les gestionnaires de conditions ne sont pas destinés à  remplacer un code défensif

Les gestionnaires de conditions ne sont pas destinés à  remplacer un code défensif

Un coup d'oeil au code du programme de service SlsAnlPrc montre bien sa solidité. Les cartes C vérifient les erreurs de division par zéro et utilisent de grandes zones de travail sur les opérations Eval pour réduire le risque de troncature d'ordre supérieur. Il est en effet toujours possible, quoique

Lire l'article
On peut coder un gestionnaire de conditions de deux manières

On peut coder un gestionnaire de conditions de deux manières

Un gestionnaire de conditions simple
Un gestionnaire de conditions est une procédure avec une liste de paramètres prédéfinis. On peut coder un gestionnaire de conditions de deux manières : comme un module lié par copie ou comme une procédure dans un programme de service liée par référence. J'ai choisi ici

Lire l'article
Si les composants du programme sont autonomes et réutilisables, on peut réduire les coûts de maintenance

Si les composants du programme sont autonomes et réutilisables, on peut réduire les coûts de maintenance

Des avantages à  long terme
Cette introduction montre bien que la mise en oeuvre des concepts OO peuvent être complexes et, à  première vue, très éloignés des concepts de base des autres langages de programmation. Cependant, l'idée sous-jacente est simple : si les composants du programme sont autonomes et réutilisables,

Lire l'article
Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens

Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens

Polymorphisme
Polymorphisme signifie "formes multiples", et cela correspond à  un besoin très courant en programmation : celui de fonctionner exactement comme un tout, à  quelques différences prés. Ainsi, la formule de calcul de la prime d'une police d'assurance automobile est probablement similaire à  celle utilisée pour calculer la prime d'une

Lire l'article
A long terme, l’héritage réduit le temps et les coûts de maintenance

A long terme, l’héritage réduit le temps et les coûts de maintenance

Héritage
Le principe d'héritage consiste à  réutiliser le code écrit pour une classe dans une autre classe. Le but est, comme pour l'encapsulation, de réduire les coûts de maintenance. Certes, la notion de réutilisation du code n'est pas nouvelle. Les programmeurs en langages classiques font des couper/coller du code source

Lire l'article
Les programmeurs peuvent décider du niveau d’encapsulation pour chacune des variables et des méthodes

Les programmeurs peuvent décider du niveau d’encapsulation pour chacune des variables et des méthodes

Encapsulation
L'encapsulation traduit le fait que les variables ne sont pas manipulées directement. Elles sont protégées par les méthodes de la classe qui les définit. Les méthodes peuvent aussi être encapsulées et les programmeurs peuvent décider du niveau d'encapsulation pour chacune des variables et des méthodes. Même si Java accepte

Lire l'article
Trois principes généralisés définissent les caractéristiques d’un langage OO

Trois principes généralisés définissent les caractéristiques d’un langage OO

"The Big Three"
R. Buckminster Fuller (intellectuel américain, 1895-1983), a souvent présenté les principes généralisés comme une technique purement humaine pour comprendre le comportement du monde. Fuller a expliqué, par exemple, comment le comportement de trois bûches pouvait, par extrapolation, démontrer le principe général du levier : en mettant une

Lire l'article
En terminologie Java, les sous-routines sont des méthodes

En terminologie Java, les sous-routines sont des méthodes

Plonger dans la programmation OO
Pour les programmeurs formés aux langages procéduraux, l'aspect le plus difficile de Java est la relation entre classes et objets. Un concept important, susceptible de faciliter la compréhension de cette relation, consiste dans le fait que les langages OO sont auto-extensibles et peuvent définir de

Lire l'article
L’utilisation d’ALLOCATE(*YES) peut réduire sensiblement le temps d’exécution du job

L’utilisation d’ALLOCATE(*YES) peut réduire sensiblement le temps d’exécution du job

Pour ajouter un enregistrement à  un nouveau fichier, utiliser ALLOCATE *YES

Certains jobs batch volumineux demandent un temps de traitement considérable en raison de la charge système nécessaire pour ajouter des enregistrements à  un fichier base de données. Cette charge se produit même dans un enregistrement monojob, et l'utilisation

Lire l'article
MAX1TB est le paramétrage par défaut pour les nouveaux fichiers logiques créés sur des systèmes RISC

MAX1TB est le paramétrage par défaut pour les nouveaux fichiers logiques créés sur des systèmes RISC

Avec des index à  quatre octets (voir figure 1), le verrouillage se produit au niveau feuille, pour que des jobs multiples puissent accéder en même temps à  des enregistrements d'index différents sans souffrir de conflit de verrou significatif et sans avoir aucun effet réel sur le débit de traitement de

Lire l'article
La simple conversion de fichiers logiques en index MAX1TB n’améliorera pas les performances

La simple conversion de fichiers logiques en index MAX1TB n’améliorera pas les performances

Utiliser les index base de données MAX1TB

Pour obtenir de bonnes performances base de données lorsque de multiples jobs simultanés effectuent des opérations de mise à  jour, de suppression et/ou d'ajout au même fichier physique, il faut créer ou modifier les fichiers logiques en utilisant le paramètre ACCPTHSIZ(*MAX1TB)

Lire l'article