SQL Server, SQL-Statistik-Objekt
Das SQLServer:SQL-Statistik-Objekt in SQL Server stellt Indikatoren bereit, mit denen Sie die Kompilierung und die Art der Anforderungen, die an eine Instanz von SQL Server gesendet werden, überwachen können. Das Überwachen der Anzahl der Kompilierungen und Neukompilierungen von Abfragen sowie der Anzahl der Batches, die eine Instanz von SQL Server erhalten hat, gibt Ihnen einen Hinweis auf die Verarbeitungsgeschwindigkeit von Benutzerabfragen in SQL Server sowie auf die Effektivität, mit der der Abfrageoptimierer die Abfragen verarbeitet.
Das Kompilieren ist ein wesentlicher Bestandteil der Verarbeitungszeit einer Abfrage. Um Kompilierungskosten zu sparen, speichert Database Engine (Datenbankmodul) 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) und Einfache Parametrisierung.
Es folgen die Leistungsindikatoren für das SQL-Statistik-Objekt von SQL Server.
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. Eine automatische Parametrisierung tritt dann ein, wenn eine Instanz von SQL Server versucht, eine Transact-SQL-Anforderung zu parametrisieren, indem bestimmte Literale durch Parameter ersetzt werden, damit der sich ergebende zwischengespeicherte Ausführungsplan für mehrere ähnliche Anforderungen wiederverwendet werden kann. Beachten Sie, dass in höheren Versionen von SQL Server Auto-Parametrisierungen auch als einfache Parametrisierungen bezeichnet werden. Dieser Leistungsindikator schließt keine erzwungenen Parametrisierungen ein. |
Batchanforderungen/Sekunde |
Anzahl der Transact-SQL-Befehlsbatches, die pro Sekunde empfangen wurden. 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. Beachten Sie, dass in höheren Versionen von SQL Server Auto-Parametrisierungen auch als einfache Parametrisierungen bezeichnet werden. |
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. Sicher bezieht sich auf die Tatsache, dass ein zwischengespeicherter Ausführungsplan für verschiedene ähnliche Transact-SQL-Anweisungen wiederverwendet werden kann. SQL Server unternimmt viele Auto-Parametrisierungsversuche, die teilweise sicher sind und teilweise einen Fehler erzeugen. Beachten Sie, dass in höheren Versionen von SQL Server Auto-Parametrisierungen auch als einfache Parametrisierungen bezeichnet werden. 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 Kompilierungen pro Sekunde. Gibt an, wie oft der Pfad für den Kompilierungscode eingegeben wurde. Dies schließt Kompilierungen ein, die durch Neukompilierungen auf Anweisungsebene in SQL Server verursacht wurden. Wenn die Benutzeraktivität von SQL Server stabil ist, erreicht dieser Wert einen gleich bleibenden Status. |
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. In höheren Versionen von SQL Server basieren Neukompilierungen auf Anweisungen und nicht auf Batches wie in Microsoft SQL Server 2000. Deshalb ist ein direkter Vergleich von Werten dieses Leistungsindikators zwischen SQL Server und früheren Versionen nicht möglich. |
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. |
Siehe auch