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. Das Ziel des Caches liegt darin, die Kompilierung durch Speichern der kompilierten Abfragen zur späteren Wiederverwendung zu reduzieren, wodurch vermieden wird, dass die Abfragen bei einer späteren Ausführung erneut kompiliert werden müssen. Jede eindeutige Abfrage muss jedoch mindestens einmal kompiliert werden. Das Neukompilieren von Abfragen kann durch die folgenden Faktoren ausgelöst werden:

  • 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.

  • Umgebungsänderungen (SET-Anweisungen). Änderungen an Sitzungseinstellungen, wie z. B. ANSI_PADDING oder ANSI_NULLS, können dazu führen, dass eine Abfrage neu kompiliert wird.

Weitere Informationen zur einfachen und erzwungenen Parametrisierung finden Sie unter ALTER DATABASE (Transact-SQL).For more information about simple and forced parametrization, see ALTER DATABASE (Transact-SQL).

Dies sind die SQL Server SQL-Statistikzähler .

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. Autoparameterisierungen werden auch als einfache Parametrisierungen in neueren Versionen von SQL Server bezeichnet. Dieser Leistungsindikator schließt keine erzwungenen Parametrisierungen ein.
Batchanforderungen/Sekunde Anzahl der Transact-SQL-Befehlsbatches, die pro Sekunde empfangen werden. Diese Statistik ist von allen Einschränkungen (wie z. B. E/A, Anzahl der Benutzer, Cachegröße, Komplexität der Anforderungen usw.) betroffen. Eine hohe Anzahl der Batchanforderungen bedeutet einen guten Durchsatz.
Fehler bei Auto-Parametrisierungen/Sekunde Anzahl der fehlgeschlagenen automatischen Parametrisierungen pro Sekunde. Dieser Wert sollte niedrig sein. Autoparameterisierungen werden auch als einfache Parametrisierungen in späteren Versionen von SQL Server bezeichnet.
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. Die Anzahl der Planausführungen pro Sekunde, bei denen die Planhinweisliste bei der Erzeugung des Plans ignoriert wurde. Die Planhinweisliste wurde übergangen, und der Ausführungsplan wurde über eine normale Kompilierung erzeugt.
Sichere Auto-Parametrisierungen/Sekunde Anzahl der sicheren automatischen Parametrisierungen pro Sekunde. Tresor bezieht sich auf eine Bestimmung, dass ein zwischengespeicherter Ausführungsplan zwischen verschiedenen ähnlich aussehenden Transact-SQL-Anweisungen gemeinsam genutzt werden kann. SQL Server führt viele Autoparameterisierungsversuche durch, die sich als sicher herausstellen und andere fehlschlagen. Autoparameterisierungen werden auch als einfache Parametrisierungen in späteren Versionen von SQL Server bezeichnet. Dieser Leistungsindikator schließt keine erzwungenen Parametrisierungen ein.
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 werden als unsafe gekennzeichnet. Die Anzahl der erzwungenen Parametrisierungen wird von diesem Leistungsindikator nicht gezählt.

Beispiel

Sie beginnen damit, die Abfrageleistungsindikatoren in diesem Objekt mithilfe dieser T-SQL-Abfrage in der dynamischen Verwaltungssicht sys.dm_os_performance_counters zu untersuchen:

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