sys.query_store_wait_stats(Transact-SQL)

적용 대상: SQL Server 2017(14.x) 이상 Azure SQL Database

쿼리의 대기 정보에 대한 정보를 포함합니다.

열 이름 데이터 형식 설명
wait_stats_id bigint plan_id, runtime_stats_interval_id, execution_type, wait_category에 대한 대기 통계를 나타내는 행의 식별자입니다. 이전 런타임 통계 간격에 대해서만 고유합니다. 현재 활성 간격의 경우 실행 유형이 execution_type이고 대기 범주가 wait_category로 표시되는 plan_id가 참조하는 계획에 대한 대기 통계를 나타내는 여러 행이 있을 수 있습니다. 일반적으로 한 행은 디스크로 플러시되는 대기 통계를 나타내고 다른 행은 메모리 내 상태를 나타냅니다. 따라서 모든 간격에 대한 실제 상태를 얻으려면 메트릭을 집계하고 plan_id, runtime_stats_interval_id, execution_type, wait_category를 기준으로 그룹화해야 합니다.
plan_id bigint 외래 키입니다. sys.query_store_plan(Transact-SQL)에 조인합니다.
runtime_stats_interval_id bigint 외래 키입니다. sys.query_store_runtime_stats_interval(Transact-SQL)에 조인합니다.
wait_category tinyint 대기 유형은 아래 표를 사용하여 분류된 다음, 대기 시간은 이러한 대기 범주에 걸쳐 집계됩니다. 대기 범주마다 문제 해결을 위해 다른 후속 분석이 필요하지만 동일한 범주의 대기 유형은 유사한 문제 해결 경험을 생성하므로 대기 외에 영향을 받는 쿼리를 제공하는 것은 이러한 조사의 대부분을 성공적으로 완료하는 데 누락된 부분입니다.
wait_category_desc nvarchar(128) 대기 범주 필드에 대한 텍스트 설명은 아래 표를 검토하세요.
execution_type tinyint 다음은 쿼리 실행 유형을 결정합니다.

0 - 일반 실행(성공적으로 완료됨)

3 - 클라이언트 시작으로 실행이 중단됨

4 - 예외로 실행이 중단됨
execution_type_desc nvarchar(128) 실행 유형 필드에 대한 텍스트 설명:

0 - 일반

3 - 중단됨

4 - 예외
total_query_wait_time_ms bigint 집계 간격 및 대기 범주 내의 쿼리 계획에 대한 총 CPU wait 시간(밀리초 단위로 보고됨)입니다.
avg_query_wait_time_ms float 집계 간격 및 대기 범주 내에서 실행 당 쿼리 계획에 대한 평균 대기 기간(밀리초 단위로 보고됨)입니다.
last_query_wait_time_ms bigint 집계 간격 및 대기 범주 내의 쿼리 계획에 대한 마지막 대기 기간(밀리초 단위로 보고됨)입니다.
min_query_wait_time_ms bigint 집계 간격 및 대기 범주 내의 쿼리 계획에 대한 최소 CPU wait 시간(밀리초 단위로 보고됨)입니다.
max_query_wait_time_ms bigint 집계 간격 및 대기 범주 내의 쿼리 계획에 대한 최대 CPU wait 시간(밀리초 단위로 보고됨)입니다.
stdev_query_wait_time_ms float 집계 간격 및 대기 범주 내의 쿼리 계획에 대한 Query wait 기간 표준 편차(밀리초 단위로 보고됨)입니다.
replica_group_id bigint 이 복제본의 복제본 집합 번호를 식별합니다. sys.query_store_replicas 외래 키입니다.

적용 대상: SQL Server(SQL Server 2022(16.x)부터)

대기 범주 매핑 테이블

“%”는 와일드카드로 사용됩니다.

정수 값 대기 범주 대기 유형은 범주에 포함됩니다.
0 알 수 없음 알 수 없음
1 CPU SOS_SCHEDULER_YIELD
2 작업자 스레드* Threadpool
3 잠금 LCK_M_%
4 래치 LATCH_%
5 버퍼 래치 PAGELATCH_%
6 버퍼 IO PAGEIOLATCH_%
7 컴파일* RESOURCE_SEMAPHORE_QUERY_COMPILE
8 SQL CLR CLR%, SQLCLR%
9 미러링 DBMIRROR%
10 트랜잭션 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 선점형 PREEMPTIVE_%
13 Service Broker BROKER_% (BROKER_RECEIVE_WAITFOR 아님)
14 Tran 로그 IO LOGMGR, LOGBUFFER, LOGMGR_RESERVE_APPEND, LOGMGR_FLUSH, LOGMGR_PMM_LOG, CHKPT, WRITELOG
15 네트워크 IO ASYNC_NETWORK_IO, NET_WAITFOR_PACKET, PROXY_NETWORK_IO, EXTERNAL_SCRIPT_NETWORK_IOF
16 Parallelism CXCONSUMER, CXPACKET, CXSYNC_CONSUMER, CXSYNC_PORT, EXCHANGE, HT%, BMP%, BP%
17 메모리 RESOURCE_SEMAPHORE, CMEMTHREAD, CMEMPARTITIONED, EE_PMOLOCK, MEMORY_ALLOCATION_EXT, RESERVED_MEMORY_ALLOCATION_EXT, MEMORY_GRANT_UPDATE
18 사용자 대기 WAITFOR, WAIT_FOR_RESULTS, BROKER_RECEIVE_WAITFOR
19 추적 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 전체 텍스트 검색 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 기타 디스크 IO ASYNC_IO_COMPLETION, IO_COMPLETION, BACKUPIO, WRITE_COMPLETION, IO_QUEUE_LIMIT, IO_RETRY
22 복제 SE_REPL_%, REPL_%, HADR_% (HADR_THROTTLE_LOG_RATE_GOVERNOR 아님), PWAIT_HADR_%, REPLICA_WRITES, FCB_REPLICA_WRITE, FCB_REPLICA_READ, PWAIT_HADRSIM
23 로그 속도 관리자 LOG_RATE_GOVERNOR, POOL_LOG_RATE_GOVERNOR, HADR_THROTTLE_LOG_RATE_GOVERNOR, INSTANCE_LOG_RATE_GOVERNOR, RBIO_RG_%

* 쿼리 저장소는 쿼리 컴파일 중에가 아니라 쿼리 실행 중에 만 대기 통계를 추적합니다. 이렇게 하면 컴파일 대기 통계를 추적하는 쿼리 저장소 기능이 제한됩니다.

사용 권한

VIEW DATABASE STATE 권한이 필요합니다.

다음 단계

다음 문서에서 쿼리 저장소에 대해 자세히 알아봅니다.