sys.query_store_wait_stats (Transact-SQL)
Gilt für: SQL Server 2017 (14.x) und höher Azure SQL-Datenbank
Enthält Informationen zu den Warteinformationen für die Abfrage.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
wait_stats_id | bigint | Bezeichner der Zeile, die die Statistik zur Wartezeit für „plan_id“, „runtime_stats_interval_id“, „execution_type“ und „wait_category“ darstellt. Ist nur für die letzten Laufzeitstatistikintervalle eindeutig. Für das derzeit aktive Intervall sind ggf. mehrere Zeilen vorhanden, die Statistiken zur Wartezeit für den Plan darstellen, auf den durch „plan_id“ verwiesen wird. Der Ausführungstyp wird dabei durch „execution_type“ und die Wartekategorie durch „wait_category“ dargestellt. In der Regel stellt eine einzelne Zeile die Statistik zur Wartezeit dar, die auf den Datenträger geleert wird, während andere Zeilen den In-Memory-Zustand darstellen. Um den tatsächlichen Zustand für jedes Intervall zu erhalten, müssen daher Metriken aggregiert und nach „plan_id“, “runtime_stats_interval_id“, “execution_type“ und „wait_category“ gruppiert werden. |
plan_id | bigint | Fremdschlüssel. Verknüpft mit sys.query_store_plan (Transact-SQL). |
runtime_stats_interval_id | bigint | Fremdschlüssel. Verknüpft mit sys.query_store_runtime_stats_interval (Transact-SQL). |
wait_category | tinyint | Wartetypen werden gemäß der folgenden Tabelle kategorisiert. Danach wird die Wartezeit über diese Wartekategorien hinweg aggregiert. Verschiedene Wartekategorien erfordern verschiedene Folgeanalysen zur Problembehebung. Wartetypen aus der gleichen Kategorie führen jedoch zu ähnlichen Problembehebungsvorgängen. Wenn nun zusätzlich zu den Wartevorgängen die betroffene Abfrage bereitgestellt wird, kann ein Großteil der Überprüfungen erfolgreich abgeschlossen werden. |
wait_category_desc | nvarchar(128) | Eine Textbeschreibung des Wartekategoriefelds finden Sie in der Tabelle weiter unten. |
execution_type | tinyint | Bestimmt die Art der Abfrageausführung: 0: Reguläre Ausführung (erfolgreich abgeschlossen) 3: Clientseitig initiierter Abbruch der Ausführung 4: Durch Ausnahme abgebrochene Ausführung |
execution_type_desc | nvarchar(128) | Textbeschreibung des Ausführungstypfelds: 0: Regulär 3 : Abgebrochen 4: Ausnahme |
total_query_wait_time_ms | bigint | Gesamte CPU-Wartezeit (CPU wait ) für den Abfrageplan innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
avg_query_wait_time_ms | float | Durchschnittliche Wartedauer für den Abfrageplan pro Ausführung innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
last_query_wait_time_ms | bigint | Letzte Wartedauer für den Abfrageplan innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
min_query_wait_time_ms | bigint | Minimale CPU-Wartezeit (CPU wait ) für den Abfrageplan innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
max_query_wait_time_ms | bigint | Maximale CPU-Wartezeit (CPU wait ) für den Abfrageplan innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
stdev_query_wait_time_ms | float | Standardabweichung bei der Abfragewartedauer (Query wait ) für den Abfrageplan innerhalb des Aggregationsintervalls und der Wartekategorie (gemeldet in Millisekunden). |
replica_group_id | bigint | Identifiziert die Replikatgruppennummer für dieses Replikat. Fremdschlüssel für sys.query_store_replicas. Gilt für: SQL Server (ab SQL Server 2022 (16.x)) |
Zuordnungstabelle für Wartekategorien
„%“ wird als Platzhalter verwendet.
Ganzzahliger Wert | Wartekategorie | In der Kategorie enthaltene Wartetypen |
---|---|---|
0 | Unbekannt | Unbekannt |
1 | CPU | SOS_SCHEDULER_YIELD |
2 | Arbeitsthread* | THREADPOOL |
3 | Sperren | LCK_M_% |
4 | Latch | LATCH_% |
5 | Pufferlatch | PAGELATCH_% |
6 | Puffer-E/A | PAGEIOLATCH_% |
7 | Kompilierung* | RESOURCE_SEMAPHORE_QUERY_COMPILE |
8 | SQL CLR | CLR%, SQLCLR% |
9 | Widerspiegelnd | DBMIRROR% |
10 | Transaktion | XACT%, DTC%, TRAN_MARKLATCH_%, MSQL_XACT_%, TRANSACTION_MUTEX |
11 | Idle | SLEEP_%, LAZYWRITER_SLEEP, SQLTRACE_BUFFER_FLUSH, SQLTRACE_INCREMENTAL_FLUSH_SLEEP, SQLTRACE_WAIT_ENTRIES, FT_IFTS_SCHEDULER_IDLE_WAIT, XE_DISPATCHER_WAIT, REQUEST_FOR_DEADLOCK_SEARCH, LOGMGR_QUEUE, ONDEMAND_TASK_QUEUE, CHECKPOINT_QUEUE, XE_TIMER_EVENT |
12 | Präventiv | PREEMPTIVE_% |
13 | Service Broker | BROKER_% (aber nicht BROKER_RECEIVE_WAITFOR) |
14 | Transaktionsprotokoll-E/A | LOGMGR, LOGBUFFER, LOGMGR_RESERVE_APPEND, LOGMGR_FLUSH, LOGMGR_PMM_LOG, CHKPT, WRITELOG |
15 | Netzwerk-E/A | ASYNC_NETWORK_IO, NET_WAITFOR_PACKET, PROXY_NETWORK_IO, EXTERNAL_SCRIPT_NETWORK_IOF |
16 | Parallelität | CXCONSUMER, CXPACKET, CXSYNC_CONSUMER, CXSYNC_PORT, EXCHANGE, HT%, BMP%, BP% |
17 | Memory | RESOURCE_SEMAPHORE, CMEMTHREAD, CMEMPARTITIONED, EE_PMOLOCK, MEMORY_ALLOCATION_EXT, RESERVED_MEMORY_ALLOCATION_EXT, MEMORY_GRANT_UPDATE |
18 | Benutzerwartezeit | WAITFOR, WAIT_FOR_RESULTS, BROKER_RECEIVE_WAITFOR |
19 | Ablaufverfolgung | TRACEWRITE, SQLTRACE_LOCK, SQLTRACE_FILE_BUFFER, SQLTRACE_FILE_WRITE_IO_COMPLETION, SQLTRACE_FILE_READ_IO_COMPLETION, SQLTRACE_PENDING_BUFFER_WRITERS, SQLTRACE_SHUTDOWN, QUERY_TRACEOUT, TRACE_EVTNOTIFF |
20 | Volltextsuche | FT_RESTART_CRAWL, FULLTEXT GATHERER, MSSEARCH, FT_METADATA_MUTEX, FT_IFTSHC_MUTEX, FT_IFTSISM_MUTEX, FT_IFTS_RWLOCK, FT_COMPROWSET_RWLOCK, FT_MASTER_MERGE, FT_PROPERTYLIST_CACHE, FT_MASTER_MERGE_COORDINATOR, PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC |
21 | Andere Datenträger-E/A | ASYNC_IO_COMPLETION, IO_COMPLETION, BACKUPIO, WRITE_COMPLETION, IO_QUEUE_LIMIT, IO_RETRY |
22 | Replikation | SE_REPL_%, REPL_%, HADR_% (aber nicht HADR_THROTTLE_LOG_RATE_GOVERNOR), PWAIT_HADR_%, REPLICA_WRITES, FCB_REPLICA_WRITE, FCB_REPLICA_READ, PWAIT_HADRSIM |
23 | Protokollratenkontrolle | LOG_RATE_GOVERNOR, POOL_LOG_RATE_GOVERNOR, HADR_THROTTLE_LOG_RATE_GOVERNOR, INSTANCE_LOG_RATE_GOVERNOR, RBIO_RG_% |
* Der Abfragespeicher verfolgt die Statistik zur Wartezeit nur während der Ausführung der Abfrage, aber nicht während der Kompilierung der Abfrage nach. Dadurch wird die Möglichkeit des Abfragespeichers eingeschränkt, die Statistik zur Wartezeit bei der Kompilierung nachzuverfolgen.
Berechtigungen
Erfordert die VIEW DATABASE STATE
-Berechtigung.
Nächste Schritte
Weitere Informationen zum Abfragespeicher finden Sie in den folgenden Artikeln:
- sys.query_store_replicas (Transact-SQL)
- sys.database_query_store_options (Transact-SQL)
- sys.query_context_settings (Transact-SQL)
- sys.query_store_plan (Transact-SQL)
- sys.query_store_query (Transact-SQL)
- sys.query_store_query_text (Transact-SQL)
- sys.query_store_runtime_stats_interval (Transact-SQL)
- Überwachen der Leistung mit dem Abfragespeicher
- Katalogsichten (Transact-SQL)
- Gespeicherte Prozeduren für den Abfragespeicher (Transact-SQL)