SQL Server, SQL-Statistik (Objekt)

Gilt für:SQL Server

Das SQLServer:SQL Statistics-Objekt in SQL Server stellt Leistungsindikatoren zum Überwachen der Kompilierung und des Typs von Anforderungen bereit, die an eine Instanz von SQL Server gesendet werden. Die Überwachung der Anzahl der Abfragekompilierungen und Neukompilierungen sowie die Anzahl der von einer SQL Server-Instanz empfangenen Batches gibt Ihnen einen Hinweis darauf, wie schnell SQL Server Benutzerabfragen verarbeitet und wie effektiv der Abfrageoptimierer die Abfragen verarbeitet.

Das Kompilieren ist ein wesentlicher Bestandteil der Verarbeitungszeit einer Abfrage. Um die Kompilierungskosten zu sparen, speichert die Datenbank-Engine den kompilierten Abfrageplan in einem Abfragecache. Der Cache reduziert die Kompilierung, indem er kompilierte Abfragen für spätere Wiederverwendung speichert, wodurch das Nachkompilieren von Abfragen bei späteren Ausführungen entfällt. Jede eindeutige Abfrage muss jedoch mindestens einmal kompiliert werden. Die folgenden Faktoren können Abfrage-Rekompilierungen verursachen:

  • Schemaänderungen, einschließlich Basisschemaänderungen, wie etwa das Hinzufügen von Spalten oder Indizes zu einer Tabelle, oder Statistikschemaänderungen, wie das Einfügen oder Löschen einer großen Anzahl von Zeilen aus einer Tabelle.

  • Environment (SET Anweisung) ändert sich. Änderungen in Sitzungseinstellungen wie ANSI_PADDING oder ANSI_NULLS können dazu führen, dass eine Abfrage neu kompiliert wird.

Weitere Informationen findest du unter:

Die folgende Tabelle listet die SQL-Statistikzähler für SQL Server auf.

SQL-Statistik-Leistungsindikatoren von SQL Server Beschreibung
Versuche für automatische Parametrisierung/Sekunde Anzahl der Versuche für automatische Parametrisierung pro Sekunde. Die Gesamtanzahl sollte die Summe der fehlgeschlagenen, gesicherten und ungesicherten automatischen Parametrisierungen sein. Die automatische Parameterisierung tritt auf, wenn eine Instanz von SQL Server versucht, eine Transact-SQL-Anforderung zu parametrisieren, indem einige Literale durch Parameter ersetzt werden, sodass die Wiederverwendung des resultierenden zwischengespeicherten Ausführungsplans für mehrere ähnliche Anforderungen möglich ist. Autoparametrisierung ist auch als einfache Parametrisierung bekannt. Dieser Zähler beinhaltet keine erzwungenen Parameterisierungen.
Batchanforderungen/Sekunde Anzahl der Transact-SQL-Befehlsbatches, die pro Sekunde empfangen werden. Diese Statistik wird von allen Einschränkungen beeinflusst (wie I/O, Anzahl der Benutzer, Cache-Größe und Komplexität der Anfragen). Eine hohe Anzahl der Batchanforderungen bedeutet einen guten Durchsatz.
Fehler bei Auto-Parametrisierungen/Sekunde Anzahl der fehlgeschlagenen automatischen Parametrisierungen pro Sekunde. Dieser Wert sollte gering sein. Autoparametrisierung ist auch als einfache Parametrisierung bekannt.
Erzwungene Parametrisierungen/Sekunde Anzahl der pro Sekunde erfolgreichen erzwungenen Parametrisierungen.
Planausführungen mit Planhinweisliste/Sek. Die Anzahl der Planausführungen pro Sekunde, bei denen der Abfrageplan mithilfe einer Planhinweisliste erzeugt wurde.
Planausführungen ohne Planhinweisliste/Sek. Anzahl der Planausführungen pro Sekunde, bei denen ein Planleitfaden bei der Planerstellung nicht eingehalten werden konnte. Der Abfrageoptimierer ignorierte die Plananleitung und verwendete normale Kompilierung, um den ausgeführten Plan zu erstellen.
Sichere Auto-Parametrisierungen/Sekunde Anzahl der sicheren automatischen Parametrisierungen pro Sekunde. Safe bezieht sich auf eine Bestimmung, dass ein zwischengespeicherter Ausführungsplan zwischen verschiedenen ähnlich aussehenden Transact-SQL-Anweisungen gemeinsam genutzt werden kann. SQL Server unternimmt viele Autoparametrisierungsversuche. Einige erweisen sich als sicher, andere scheitern. Autoparametrisierung ist auch als einfache Parametrisierung bekannt. Dieser Zähler beinhaltet keine erzwungenen Parameterisierungen.
SQL-Warnungsrate Anzahl der Warnungen pro Sekunde. Eine Warnung ist eine Anforderung des Clients, die aktuell ausgeführte Anforderung zu beenden.
SQL-Kompilierungen/Sekunde Anzahl der SQL-Kompilierungen pro Sekunde. Gibt an, wie oft der Pfad für den Kompilierungscode eingegeben wurde. Enthält Kompilierungen, die durch Neukompilierungen auf Anweisungsebene in SQL Server verursacht werden. Nachdem die SQL Server-Benutzeraktivität stabil ist, erreicht dieser Wert einen stabilen Zustand.
Erneute SQL-Kompilierungen/Sekunde Anzahl der erneuten Anweisungskompilierungen pro Sekunde. Zählt, wie oft erneute Kompilierungen von Anweisungen ausgelöst werden. Im Allgemeinen liegt es in Ihrem Interesse, dass der Wert der Neukompilierungen niedrig ist.
Unsichere Auto-Parametrisierungen/Sekunde Anzahl der unsicheren automatischen Parametrisierungen pro Sekunde. Beispielsweise weist die Abfrage Eigenschaften auf, die verhindern, dass der zwischengespeicherte Plan wiederverwendet wird. Diese Eigenschaften gelten als unsicher. Diese Zählung schließt die Anzahl der erzwungenen Parametrisierungen nicht ein.

Examples

Um die Query-Leistungszähler in diesem Objekt zu untersuchen, führen Sie die folgende Transact-SQL (T-SQL)-Abfrage in der sys.dm_os_performance_counters dynamischen Managementansicht aus:

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