Différence entre fragmentation interne et externe d’un index

Quand on parle de la fragmentation physique des indexes, on parle aussi de fragmentation externe. Celle-ci se « produit » lorsque l’ordre logique des pages de l’index est incorrect. Les nouvelles valeurs de clé de l’index sont alors insérées dans de nouvelles pages d’index, qui désordonnent l’ordre original de la clé de l’index.

Quand on parle de fragmentation logique de l’index, on parle aussi de fragmentation interne : c’est le cas lorsque la quantité de données stockée dans les pages de l’index est plus petite que la quantité maximale de données que peut stocker une page.

ElSuket

Calculer le Buffer Cache Hit Ratio

S’il est une valeur intéressante à suivre pour le performances d’un serveur, c’est bien le Buffer Cache Hit Ratio, ou Taux d’accès au cache des tampons, car celui-ci est un rapport du nombre de pages lues en RAM par rapport au nombre de pages lues à partir des disques.

Voici une petite requête pour trouver sa valeur :

Lire la suite

Origine des verrous mortels (Deadlocks)

Les verrous mortels, connus sous SQL Server comme « deadlocks », se produisent lorsque deux processus utilisateur ont posé des verrous sur des objets distincts, et que chacun de ces deux processus tente d’acquérir un nouveau verrou sur un objet que l’autre processus a déjà verrouillé.

Quand le moteur de SQL Server identifie un tel phénomène, il met fin à la transaction la moins coûteuse en ressources à défaire (ROLLBACK)

Quelles sont les règles de base à suivre pour éviter les problèmes de verrous mortels ?

Lire la suite

Trouver le numéro d’une instance nommée de SQL Server

Vous aurez remarqué que pour une installation par défaut d’une instance nommée de SQL Server, celui-ci crée les fichiers de base de données dans le répertoire :

C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data

où n est un entier.

Dès lors, comment retrouver ce numéro ?

Lire la suite

Déplacer les bases de données système sous SQL Server 2005

Il est parfois nécessaire de déplacer des bases de données, soit après l’achat de disques supplémentaires, soit pour augmenter les performances en tirant profit de la parallélisation des écritures sur de multiples disques, comme par exemple pour la base de données TempDB.

Si le déplacement de bases de données utilisateur peut sembler simple, il en va tout autrement pour le déplacement des bases de données système que sont TempDB, Model, MSDB, et la moins « visible » d’entre-elles Resource qui est étroitement liée à la base de données Master.

Voyons comment déplacer ces bases de données …

Lire la suite

Comparaison des temps d’exécution entre un curseur et une requête SQL

Je vois souvent sur le forum SQL Server l’utilisation de curseurs alors qu’une vraie requête SQL pourrait le remplacer.
Outre le fait que les curseurs datent de COBOL (1956 …), et que leur spécification en COBOL et T-SQL est similaire à s’y méprendre, comparons donc les temps d’exécution entre un curseur et une requête sur un traitement très simple …

Lire la suite