Freigeben über


sys.dm_exec_query_optimizer_info

Aktualisiert: 12. Dezember 2006

Gibt ausführliche Statistiken zur Ausführung des SQL Server-Abfrageoptimierers zurück. Diese Sicht können Sie beim Optimieren einer Arbeitsauslastung verwenden, um Probleme oder Verbesserungen bei der Abfrageoptimierung zu identifizieren. Sie können beispielsweise anhand der Gesamtanzahl der Optimierungen, des Wertes für die verstrichene Zeit und des Endkostenwertes die Abfrageoptimierungen der aktuellen Arbeitsauslastung und sämtliche während des Optimierungsvorgangs beobachteten Änderungen vergleichen. Einige Leistungsindikatoren stellen Daten bereit, die nur für die interne Diagnose von SQL Server relevant sind. Diese Leistungsindikatoren sind als "Internal only" gekennzeichnet.

Name Datentyp Beschreibung

counter

nvarchar(8000)

Name des Statistikereignisses des Abfrageoptimierers.

occurrence

bigint

Anzahl der Vorkommen von Optimierungsereignissen für diesen Leistungsindikator.

value

float

Durchschnittlicher Eigenschaftswert pro Ereignisvorkommen.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Hinweise

sys.dm_exec_query_optimizer_info enthält die folgenden Eigenschaften (Leistungsindikatoren). Alle Vorkommenwerte sind kumulativ und werden beim Neustarten des Systems auf 0 festgelegt. Alle Werte für Wertfelder werden beim Neustarten des Systems auf NULL festgelegt. Alle Wertspaltenwerte, die einen Durchschnitt angeben, verwenden den Vorkommenwert aus derselben Zeile als Nenner bei der Berechnung des Durchschnitts. Alle Abfrageoptimierungen werden gemessen, wenn von SQL Server Änderungen an dm_exec_query_optimizer_info ermittelt werden, einschließlich der benutzer- und systemgenerierten Abfragen. Die Ausführung eines bereits zwischengespeicherten Planes bewirkt keine Änderung von Werten in dm_exec_query_optimizer_info; nur Optimierungen sind von Bedeutung.

Leistungsindikator Vorkommen Wert

optimizations

Gesamtzahl der Optimierungen.

Nicht anwendbar

elapsed time

Gesamtzahl der Optimierungen.

Durchschnittlich verstrichene Zeit pro Optimierung einer einzelnen Anweisung (Abfrage), in Sekunden.

final cost

Gesamtzahl der Optimierungen.

Durchschnittliche geschätzte Kosten für einen optimierten Plan in internen Kosteneinheiten.

trivial plan

Internal only

Internal only

tasks

Internal only

Internal only

no plan

Internal only

Internal only

search 0

Internal only

Internal only

search 0 time

Internal only

Internal only

search 0 tasks

Internal only

Internal only

search 1

Internal only

Internal only

search 1 time

Internal only

Internal only

search 1 tasks

Internal only

Internal only

search 2

Internal only

Internal only

search 2 time

Internal only

Internal only

search 2 tasks

Internal only

Internal only

gain stage 0 to stage 1

Internal only

Internal only

gain stage 1 to stage 2

Internal only

Internal only

timeout

Internal only

Internal only

memory limit exceeded

Internal only

Internal only

insert stmt

Anzahl der für INSERT-Anweisungen ausgeführten Optimierungen.

Nicht anwendbar

delete stmt

Anzahl der für DELETE-Anweisungen ausgeführten Optimierungen.

Nicht anwendbar

update stmt

Anzahl der für UPDATE-Anweisungen ausgeführten Optimierungen.

Nicht anwendbar

contains subquery

Anzahl der Optimierungen für eine Abfrage, die mindestens eine Unterabfrage enthält.

Nicht anwendbar

unnest failed

Internal only

Internal only

tables

Gesamtzahl der Optimierungen.

Gesamtzahl der Tabellen, auf die pro optimierte Abfrage verwiesen wird.

hints

Häufigkeit, mit der ein Hinweis angegeben wurde. Zu diesen Hinweisen gehören die Abfragehinweise JOIN, GROUP, UNION und FORCE ORDER, die SET-Option FORCE PLAN sowie Verknüpfungshinweise.

Nicht anwendbar

order hint

Häufigkeit, mit der ein FORCE ORDER-Hinweis angegeben wurde.

Nicht anwendbar

join hint

Häufigkeit, mit der der Verknüpfungsalgorithmus von einem Verknüpfungshinweis erzwungen wurde.

Nicht anwendbar

view reference

Häufigkeit, mit der in einer Abfrage auf eine Sicht verwiesen wurde.

Nicht anwendbar

remote query

Anzahl der Optimierungen, bei denen die Abfrage auf mindestens eine Remotedatenquelle verwiesen hat, wie z. B. auf eine Tabelle mit einem vierteiligen Namen oder ein OPENROWSET-Ergebnis.

Nicht anwendbar

maximum DOP

Gesamtzahl der Optimierungen.

Durchschnittlicher effektiver MAXDOP-Wert für einen optimierten Plan. Standardmäßig wird der effektive MAXDOP-Wert durch die Serverkonfigurationsoption max degree of parallelism bestimmt und kann für eine bestimmte Abfrage durch den Wert des MAXDOP-Abfragehinweises außer Kraft gesetzt werden.

maximum recursion level

Anzahl der Optimierungen, bei denen mit dem Abfragehinweis eine höhere MAXRECURSION-Ebene als 0 angegeben wurde.

Durchschnittliche MAXRECURSION-Ebene in Optimierungen, bei denen mit dem Abfragehinweis eine maximale Rekursionsebene angegeben wurde.

indexed views loaded

Internal only

Internal only

indexed views matched

Anzahl der Optimierungen, bei denen für mindestens eine indizierte Sicht eine Übereinstimmung gefunden wurde.

Durchschnittliche Anzahl der übereinstimmenden Sichten.

indexed views used

Anzahl der Optimierungen, bei denen nach dem Abgleich mindestens eine indizierte Sicht im Ausgabeplan verwendet wird.

Durchschnittliche Anzahl der verwendeten Sichten.

indexed views updated

Anzahl der Optimierungen einer DML-Anweisung, die einen Plan erstellen, von dem mindestens eine indizierte Sicht verwaltet wird.

Durchschnittliche Anzahl der verwalteten Sichten.

dynamic cursor request

Anzahl der Optimierungen, in denen eine Anforderung nach dynamischen Cursorn angegeben wurde.

Nicht anwendbar

fast forward cursor request

Anzahl der Optimierungen, in denen eine Anforderung nach schnellen Vorwärtscursorn angegeben wurde.

Nicht anwendbar

Beispiele

A. Anzeigen von Statistiken zur Ausführung des Abfrageoptimierers

Wie sehen die aktuellen Statistiken zur Ausführung des Abfrageoptimierers für diese SQL Server-Instanz aus?

SELECT * FROM sys.dm_exec_query_optimizer_info;

B. Anzeigen der Gesamtzahl von Optimierungen

Wie viele Optimierungen werden ausgeführt?

SELECT occurrence AS Optimizations FROM sys.dm_exec_query_optimizer_info
WHERE counter = 'optimizations';

C. Durchschnittsdauer pro Optimierung

Wie lange dauert eine Optimierung im Durchschnitt?

SELECT ISNULL(value,0.0) AS ElapsedTimePerOptimization
FROM sys.dm_exec_query_optimizer_info WHERE counter = 'elapsed time';

D. Anteil der Optimierungen mit Unterabfragen

Wie hoch liegt der Anteil der optimierten Abfragen mit einer Unterabfrage?

SELECT (SELECT CAST (occurrence AS float) FROM sys.dm_exec_query_optimizer_info WHERE counter = 'contains subquery') /
       (SELECT CAST (occurrence AS float) 
        FROM sys.dm_exec_query_optimizer_info WHERE counter = 'optimizations')
        AS ContainsSubqueryFraction;

Siehe auch

Verweis

Dynamische Verwaltungssichten und -funktionen
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Geänderter Inhalt:
  • Die Datentypgröße von counter wurde von 4000 auf 8000 korrigiert.

05. Dezember 2005

Neuer Inhalt:
  • Die Wertbeschreibung des Leistungsindikators maximum DOP wurde verdeutlicht.