Stockage des données et index – Partie 1 : Heap

Parmi les fondamentaux de SQL Server figure la notion d’Index Clustered, souvent mal comprise par les débutants. Avant de détailler dans un prochain billet cette notion d’index clustered, nous allons d’abord nous attacher à décrire le stockage des données dans le cas où une table ne contient pas d’index clustered. Continuer la lecture

Ajout de colonne

Même si l’on essaie toujours de viser juste du premier coup, un modèle de données n’est jamais complet à la première implémentation, et il peut notamment arriver que l’on ait besoin de rajouter certaines colonnes à des tables déjà remplies. Et lorsqu’il s’agit de colonnes non Nullables et que l’on souhaite formaliser la modification sous forme de script, quelques bonnes pratiques sont à connaître. Continuer la lecture

Gestion des verrous (Partie 2)

Dans un précédent article (voir ici), j’ai présenté une première approche d’un usage de la vue sys.dm_tran_locks afin d’identifier dans le cas des verrous de type PAGE les données concernées par le verrouillage.
Maintenant, attachons-nous à l’identification plus précise des lignes de données verrouillées, c’est-à-dire aux verrous de type KEY. Continuer la lecture

Gestion des verrous (Partie 1)

Lorsque l’on rencontre un problème de processus SQL bloqué par un autre, le problème vient des verrous, dont le rôle est de maintenir l’intégrité des données. La vue système sys.dm_tran_locks permet de lister les différents verrous gérés par le moteur (en attente, autorisés, …).
Néanmoins, les données retournées par cette vue peuvent parfois être relativement obscures et difficiles à déchiffrer. Ce premier article de décryptage de ce sujet s’attachera à éclaircir un premier niveau de verrou : les verrous de type Page. Continuer la lecture

Trigger Ensembliste

Suivant les expériences et sensibilités de chacun, les Déclencheurs (Triggers en anglais) sont acceptés et utilisés par certains, ou fuis comme la peste par d’autres.
Outre l’architecture technique permettant parfois d’exclure les codages sous forme de déclencheurs, il est aussi indispensable de bien comprendre le principe de fonctionnement des déclencheurs afin de ne pas laisser traîner des bugs qui seront très difficiles à corriger. Continuer la lecture