SQL Server, objet SQL Statistics

S’applique à :SQL Server

L’objet SQLServer :SQL Statistics dans SQL Server fournit des compteurs pour surveiller la compilation et le type de requêtes envoyées à une instance de SQL Server. La surveillance du nombre de compilations et de recompilations de requêtes et du nombre de lots reçus par une instance de SQL Server vous donne une indication de la rapidité avec laquelle SQL Server traite les requêtes utilisateur et comment l’optimiseur de requête traite efficacement les requêtes.

La compilation constitue une partie significative du délai d'exécution d'une requête. Pour économiser le coût de compilation, le Moteur de base de données enregistre le plan de requête compilé dans un cache de requête. L'objectif du cache est de réduire la durée de compilation en conservant les requêtes compilées en vue d'une utilisation ultérieure, éliminant ainsi la nécessité de recompiler des requêtes si elles sont exécutées ultérieurement. Toutefois, chaque requête doit être compilée au moins une fois. La recompilation des requêtes peut être due aux facteurs suivants :

  • modifications de schéma, y compris les modifications de schémas de base comme l'addition de colonnes ou d'index à une table, ou modifications de schémas statistiques comme l'insertion ou la suppression d'un nombre significatif de lignes dans une table ;

  • modifications d'environnement (instruction SET). La modification des paramètres de session tels que ANSI_PADDING ou ANSI_NULLS peuvent provoquer la recompilation d'une requête.

Pour plus d’informations sur le paramétrage simple et forcé, consultez ALTER DATABASE (Transact-SQL).

Il s’agit des compteurs de statistiques SQL Server.

Compteurs statistiques SQL de SQL Server Description
Nombre de tentatives d'autoparamétrage/s Nombre de tentatives d'autoparamétrage par seconde. Le total devrait être la somme des autoparamétrages qui sont sûrs, non sûrs ou qui ont échoué. Le paramétrage automatique se produit lorsqu’une instance de SQL Server tente de paramétrer une requête Transact-SQL en remplaçant certains littéraux par des paramètres afin que la réutilisation du plan d’exécution mis en cache résultant sur plusieurs requêtes similaires soit possible. Les paramétrages automatiques sont également appelés paramétrages simples dans les versions plus récentes de SQL Server. Ce compteur ne tient pas compte des paramétrages forcés.
Nombre de requêtes de lots/s Nombre de lots de commandes Transact-SQL reçus par seconde. Cette statistique est affectée par toutes les contraintes (comme les E/S, le nombre d'utilisateurs, la taille du cache, la complexité des requêtes, etc.). Un nombre élevé de requêtes de lots traduit un bon débit.
Nombre d'échecs d'autoparamétrage/s Nombre d'échecs de tentatives d'autoparamétrage par seconde. Ce nombre doit être faible. Les paramétrages automatiques sont également appelés paramétrages simples dans les versions ultérieures de SQL Server.
Paramétrages forcés/s Nombre de paramétrages forcés réussis par seconde.
Exécutions guidées du plan/s Nombre d'exécutions de plan par seconde dans lesquelles le plan de requête a été généré à l'aide d'un repère de plan.
Exécutions du plan non correctement guidées/s Nombre d'exécutions de plan par seconde dans lesquelles un repère de plan n'a pas pu être honoré au cours de la génération du plan. Le repère de plan a été ignoré et la compilation normale a été utilisée pour générer le plan exécuté.
Nombre d'autoparamétrages sûrs/s Nombre de tentatives d'autoparamétrage sûres par seconde. Coffre fait référence à une détermination indiquant qu’un plan d’exécution mis en cache peut être partagé entre différentes instructions Transact-SQL similaires. SQL Server effectue de nombreuses tentatives de paramétrage automatique dont certaines s’avèrent sécurisées et d’autres échouent. Les paramétrages automatiques sont également appelés paramétrages simples dans les versions ultérieures de SQL Server. Ce compteur ne tient pas compte des paramétrages forcés.
Taux d'avertissements SQL Nombre d'avertissements par seconde. Un avertissement est une demande émise par le client pour terminer la demande en cours d'exécution.
Compilations SQL/s Nombre de compilations SQL par seconde. Indique le nombre de fois où le chemin d'accès du code de compilation est entré. Inclut des compilations provoquées par des recompilations au niveau de l’instruction dans SQL Server. Une fois l’activité utilisateur SQL Server stable, cette valeur atteint un état stable.
Recompilations SQL/s Nombre de recompilations d'instructions par seconde. Compte le nombre de fois où les recompilations d'instruction sont déclenchées. En général, il faut que le nombre de recompilations soit faible.
Nombre d'autoparamétrages non sûrs/s Nombre de tentatives d'autoparamétrage non sûres par seconde. Par exemple, la requête possède des caractéristiques qui empêchent le partage du plan mis en cache. Elles sont qualifiées de non sûres. Ce compteur ne tient pas compte du nombre de paramétrages forcés.

Exemple

Vous commencez à explorer les compteurs de performances des requêtes dans cet objet en utilisant cette requête T-SQL sur la vue de gestion dynamique sys.dm_os_performance_counters :

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%SQL Statistics%';