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 | 알 수 없음 | Unknown |
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
권한이 필요합니다.
다음 단계
다음 문서에서 쿼리 저장소에 대해 자세히 알아봅니다.
- 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)
- 쿼리 저장소 사용하여 성능 모니터링
- 카탈로그 뷰(Transact-SQL)
- 쿼리 저장소 저장 프로시저(Transact-SQL)