![Utiliser les vues indexées](https://www.itpro.fr/wp-content/uploads/2015/12/dc08fa70c28f6c57fe18cf1eaf27fcb4.jpg)
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
![Créer une vue indexée](https://www.itpro.fr/wp-content/uploads/2015/12/e0313d9efbfc1f6d9757af8bda18bc4f.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/e1cd5e7f694e9f301bb780a516706969.jpg)
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
![A propos de ce cas](https://www.itpro.fr/wp-content/uploads/2015/12/a65586b7afb09d736da37cdcc84abc70.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/9185cbb9b8cc5ef8524f672509959099.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/e9c2e9b6c20a28f64e8111059a7c7744.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/436aa0891e006d1d94a1c4f7e6bde86c.jpg)
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 :
![Modèles d’E/S et journaux de transactions](https://www.itpro.fr/wp-content/uploads/2015/12/a618a21e1c660e480dd24e38be14954a.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/e17102c7ae22b88bc84de3721ccfd4b1.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/50631fe8aaab47f8111c412e309a1d67.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/12/f91547cf21536820460a609b2e49b8f9.jpg)
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
![Si les composants du programme sont autonomes et réutilisables, on peut réduire les coûts de maintenance](https://www.itpro.fr/wp-content/uploads/2015/12/4fa259cf6fc9442df0a4ba8703b325f9.jpg)
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,
![Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à l’exécution, la technologie OO prend tout son sens](https://www.itpro.fr/wp-content/uploads/2015/12/a5ecfedf450902bae069687cfcaeb3aa.jpg)
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
![A long terme, l’héritage réduit le temps et les coûts de maintenance](https://www.itpro.fr/wp-content/uploads/2015/12/dea2aa64f911de046e6f88d05f614b45.jpg)
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
![Les programmeurs peuvent décider du niveau d’encapsulation pour chacune des variables et des méthodes](https://www.itpro.fr/wp-content/uploads/2015/12/31541959c48867bc8707a1a38a1ebb31.jpg)
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
![Trois principes généralisés définissent les caractéristiques d’un langage OO](https://www.itpro.fr/wp-content/uploads/2015/12/c3f6111e2b117fa5bb9eb385421e26f1.jpg)
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
![En terminologie Java, les sous-routines sont des méthodes](https://www.itpro.fr/wp-content/uploads/2015/11/69691b332a6193584eb46243b969db8d.jpg)
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
![L’utilisation d’ALLOCATE(*YES) peut réduire sensiblement le temps d’exécution du job](https://www.itpro.fr/wp-content/uploads/2015/11/20d1d12e4ee4ad8872ee28997fed02f2.jpg)
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
![MAX1TB est le paramétrage par défaut pour les nouveaux fichiers logiques créés sur des systèmes RISC](https://www.itpro.fr/wp-content/uploads/2015/11/f28dd87f58ae06e07085bf0e62e6e2e6.jpg)
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](https://www.itpro.fr/wp-content/uploads/2015/11/60e034fe976cfab2076c465e38cd0984.jpg)
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)