Activer et configurer le coordinateur de transactions distribuées : le...
Pour exécuter des transactions explicites (à plusieurs instructions) depuis SQL Server vers un autre serveur de base de données, nous devons configurer un serveur lié qui représente une abstraction du...
View ArticleRechercher les index inutiles
Si les index représentent l’optimisation la plus simple à mettre en place, on souhaite néanmoins conserver le minimum d’entre-eux, car leur maintenance lors de l’exécution de requêtes de modifications...
View ArticleLe reconstruction des index et la mise à jour des statistiques de colonnes
Lors de la reconstruction des index (ALTER INDEX … REBUILD), les statistiques de colonne qui constituent la clé de l’index sont recalculées avec l’échantillonnage maximal. Que se passe-t-il si par la...
View ArticleLazywriter, Checkpoint & Ghost Cleanup : Le Bon, La Brute et Le Truand de la...
Toute modification de données se fait d’abord sur les pages de la base de données qui sont en mémoire. Toute page qui subit une modification mais qui n’a pas encore été copiée sur disque dur est alors...
View ArticleUtiliser le séparateur « pipe » avec l’utilitaire BCP
Si l’on tente d’exécuter l’instruction suivante : bcp « SELECT query_plan FROM ELSUKET.dbo.unTable » queryout « C:\toto.txt » -c -t| -T -S ELSUKET dans une fenêtre d’invite de commandes ou bien à...
View ArticleConnaître la taille du cache alloué aux bases de données d’une instance
Voici une petite requête qui retourne la répartition de la mémoire allouée aux données pour toutes les bases de données d’une instance SQL Server : 12345678910111213------------------------------- --...
View ArticleLister les caractéristiques des indexes sous SQL Server 2005 et 2008
Voici une requête qui nous permet de retrouver pour tout index : - la liste de ses colonnes clé - la liste de ses colonnes incluses - la définition de son filtre - le script de création de cet index...
View ArticleRetrouver le dossier par défaut des sauvegardes des bases de données sous SQL...
Voyons comment retrouver le dossier dans lequel sont stockés par défaut les sauvegardes de vos bases de données de deux façons : - Avec SQL Server Management Studio - Avec procédure stockée étendue non...
View ArticleGénérer le script de mise à jour des types de données de colonnes dont le...
Voici plusieurs scripts qui permettent d’automatiser le changement de types de données dépréciés text, ntext et image depuis SQL Server 2005, qui les a respectivement remplacés par varchar(max),...
View ArticleTrouver le premier et le dernier jour de la semaine, du mois, du trimestre,...
Beaucoup de participants au forum SQL Server se compliquent la vie avec des calculs bizarres, à trouver le premier ou dernier jour d’un index temporel, comme celui d’une semaine, d’un mois, ou d’un...
View ArticleTrouver les derniers grossissements automatiques de fichiers
La trace SQL Profiler par défaut permet de retrouver les grossissements automatiques des fichiers de toutes les bases de données hébergées par une instance SQL Server. Voyons comment retrouver ces...
View ArticleUne macro Excel pour dépouiller les statistiques IO
L’option de session SET STATISTICS IO ON permet de révéler la quantité d’activité générée sur les disques par une requête. Comme je dépouille assez souvent le résultat qui s’affiche dans la console de...
View ArticleUtilisation des variables de type table ou des tables temporaires, et...
Voilà deux types de tables souvent utilisées mais mal maîtrisées, surtout au regard des performances qu’elles offrent, qui ne sont pas très bonnes. Voyons pourquoi … SQL Server permet de stocker dans...
View ArticleQuelles sont les requêtes et tâches en cours d’exécution dans une instance...
Voici une requête basée sur les vues et fonctions de gestion dynamiques, introduites avec SQL Server 2005. Elle permet de lister l’ensemble des requêtes actuellement en cours d’exécution dans une...
View ArticleEn SQL, NULL n’est pas une valeur !
Je vois encore énormément d’erreurs à ce sujet, chez les développeurs avec qui je travaille et j’ai travaillé, mais aussi sur le forum. Voici donc la démonstration que NULL en SQL n’est pas une valeur...
View ArticleLister les colonnes d’une ou des toutes les tables avec leurs types
Voici une requête simple pour obtenir tout cela : 12345678910111213141516171819202122------------------------------- -- Nicolas SOUQUET - 13/12/2010 ------------------------------- SELECT S.name AS...
View ArticleDifférence entre un index ordonné en cluster et un index non-cluster
Nous utilisons tous les jours de nombreux indexes : heure, calendrier, annuaire, sommaire et index d’un livre, … Passons aux bases de données : quelle est la différence entre un index cluster et un...
View Article[Snippets] Générer le script de création d’une table existante
Voici une petite procédure stockée qui permet d’imprimer le code permettant de créer une table existante. Il ne permet pas encore de récupérer les commandes de création des indexes attachées à la table...
View ArticleConnaître les caractéristiques des statistiques de colonne d’une table
Voici un lot de requêtes qui retourne quelques caractéristiques intéressantes des statistiques d’une table, notamment : - la quantité de données, en MB, qui a été échantillonnée - la date de dernier...
View ArticleLister toutes les contraintes de clé étrangère d’une base de données
Voici un petit snippet permettant d’obtenir la liste de toutes les contraintes de clé étrangère d’une base de données avec : - le nom de la contrainte, - le nom de la table référençante, - le nom de la...
View Article