Quelles sont les requêtes et tâches en cours d’exécution dans une instance SQL Server ?

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 instance SQL Server, avec quelques statistiques et caractéristiques :

– le n° de session (SPID),
– le nombre de threads mis en place pour résoudre la requête,
– le nom du serveur,
– le nom du login,
– le pourcentage d’avancement d’une instruction,
– le nom de la base de données,
– le statut de la session,
– le temps écoulé depuis le début de l’exécution,
– le temps CPU consommé,
– le nombre de lectures et d’écritures,
– le type d’instruction,
– le nombre de transactions ouvertes par la session,
– le nombre de resultsets,
– le type d’attente,
– le temps d’attente pour ce type,
– le type d’attente précédent,
– la ressource attendue,
– le nom du programme / job qui exécute la requête,
– l’instruction SQL en cours d’exécution dans le lot,
– le lot SQL complet,
– le plan de requête,
– les hashs de requête et de plan,
– le nombre d’exécutions du plan,
– la date de génération du plan,
– l’adresse IP de la machine exécutant la requête.

Toute suggestion est la bienvenue !

Lire la suite

Une 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 SQL Server Management Studio, j’en suis venu à écrire une macro qui fait ce travail pour moi en un clin d’œil ;)

Lire la suite

Générer le script de mise à jour des types de données de colonnes dont le type est déprécié

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), nvarchar(max), et varbinary(max), et a rendu les valeurs stockées sous de tels types bien plus malléables (utilisations de fonctions de chaîne notamment)
Lire la suite

Retrouver le dossier par défaut des sauvegardes des bases de données sous SQL Server 2005 et suivants

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 documentée xp_instance_regread
Lire la suite

Lazywriter, Checkpoint & Ghost Cleanup : Le Bon, La Brute et Le Truand de la gestion mémoire de SQL Server

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 qualifiée de « sale », ou « dirty » dans la littérature.

En effet, SQL Server, comme la plupart des SGBDR, travaille exclusivement en mémoire vive, pour la simple raison que son accès est au moins 1000 fois plus rapide qu’un accès aux disques durs, si performants qu’ils soient.

Mais alors comment sont persistées ces changements sur les disques durs qui supportent la base de données ?
Lire la suite

Le 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 suite on souhaite mettre à jour les statistiques pour les colonnes non-indexées ?
Lire la suite