TOP N des requêtes ad hoc les plus coûteuses
Les requêtes ad hoc, envoyées en texte par les applications ou les outils, sont souvent à l'origine d'un pic de processeur. Ce script les classe par coût et les regroupe par empreinte (query_hash) pour retrouver la requête réelle derrière des dizaines de variantes.
Voir le script →
TOP N des procédures les plus coûteuses
Quand le code applicatif passe par des procédures stockées, la vue des statistiques de procédures donne le coût réel de chaque objet, instance entière ou base par base. C'est souvent le premier endroit où chercher l'origine d'une lenteur.
Voir le script →
Liste des index inutilisés
Un index jamais lu ne sert à rien, mais il coûte : espace disque, temps de sauvegarde, et surtout mise à jour à chaque écriture dans la table. Ce script les repère, avec leur taille et le nombre de mises à jour qu'ils subissent.
Voir le script →
Liste des index très peu utilisés
Entre l'index jamais lu et l'index indispensable, il y a ceux qui coûtent plus qu'ils ne rapportent : très mis à jour, rarement lus. Ce script les isole grâce à deux seuils que vous réglez selon l'activité de votre base.
Voir le script →
Liste des index uniquement scannés
Un index qui n'est jamais utilisé en recherche (seek) mais seulement parcouru en entier (scan) n'apporte pas le bénéfice attendu d'un index. Il sert peut-être de simple réservoir de colonnes, ou ses colonnes clés ne correspondent pas aux filtres des requêtes.
Voir le script →
Clés étrangères et indexation
SQL Server ne crée pas automatiquement d'index sur les colonnes d'une clé étrangère. Sans index, les suppressions ou modifications dans la table parente provoquent des parcours complets de la table enfant, et des verrous prolongés. Ce script recense les clés étrangères et indique si chacune est indexée.
Voir le script →
Index manquants regroupés par table
SQL Server mémorise, à chaque compilation de plan, les index qui auraient réduit le coût d'une requête. Ces suggestions sont précieuses, mais brutes : elles se chevauchent et ne tiennent pas compte des index existants. Les regrouper par table permet de les arbitrer.
Voir le script →
Date du dernier calcul des statistiques
Des statistiques périmées conduisent l'optimiseur à de mauvaises estimations, donc à de mauvais plans. Ce script indique, pour chaque statistique, quand elle a été calculée, sur quel échantillon, et combien de lignes ont été modifiées depuis.
Voir le script →
Dernier backup et dernier restore, avec AlwaysOn
Dans un groupe de disponibilité, les sauvegardes peuvent être faites sur le réplica principal ou sur un secondaire : l'historique de chaque réplica ne contient que ses propres sauvegardes. Pour savoir si une base est protégée, il faut regarder tous les réplicas.
Voir le script →
Taille des fichiers et extensions récentes
Un fichier qui grossit souvent par petits incréments ralentit la base et fragmente le disque. Ces scripts donnent la taille et l'espace libre de chaque fichier, puis listent les extensions automatiques récentes, avec leur durée et la session qui les a déclenchées.
Voir le script →
Lire le journal d'erreurs SQL Server (tous les fichiers)
Le journal d'erreurs de SQL Server (ERRORLOG) est découpé en plusieurs fichiers, recyclés à chaque redémarrage du service. L'incident que vous cherchez est peut-être dans une archive. Ce script parcourt tous les fichiers disponibles et regroupe le résultat.
Voir le script →