sys.dm_exec_query_stats(Transact-SQL)sys.dm_exec_query_stats (Transact-SQL)

적용 대상: 예SQL Server(2008부터) 예Azure SQL Database 아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server에서 캐시된 쿼리 계획에 대한 집계 성능 통계를 반환합니다.Returns aggregate performance statistics for cached query plans in SQL ServerSQL Server. 이 뷰에는 캐시된 계획 내의 쿼리 문당 하나의 행이 포함되어 있습니다. 행의 유효 기간은 계획 자체와 연결되어 있습니다.The view contains one row per query statement within the cached plan, and the lifetime of the rows are tied to the plan itself. 캐시에서 계획이 제거되면 이 뷰에서도 해당 행이 제거됩니다.When a plan is removed from the cache, the corresponding rows are eliminated from this view.

참고

초기 쿼리 sys.dm_exec_query_stats 중인 서버에서 현재 실행 중인 작업이 있을 경우 부정확 한 결과 생성할 수 있습니다.An initial query of sys.dm_exec_query_stats might produce inaccurate results if there is a workload currently executing on the server. 쿼리를 다시 실행하면 보다 정확한 결과를 확인할 수 있습니다.More accurate results may be determined by rerunning the query.

참고

이를 호출 하 Azure SQL 데이터 웨어하우스Azure SQL Data Warehouse병렬 데이터 웨어하우스Parallel Data Warehouse, 이름을 사용 하 여 sys.dm_pdw_nodes_exec_query_stats합니다.To call this from Azure SQL 데이터 웨어하우스Azure SQL Data Warehouse or 병렬 데이터 웨어하우스Parallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_query_stats.

열 이름Column name 데이터 형식Data type DescriptionDescription
sql_handlesql_handle varbinary(64)varbinary(64) 쿼리가 속하는 일괄 처리 또는 저장 프로시저를 참조하는 토큰입니다.Is a token that refers to the batch or stored procedure that the query is part of.

sql_handle와 함께 statement_start_offset 하 고 statement_end_offset를 호출 하 여 쿼리의 SQL 텍스트를 검색할 수는 sys.dm_exec_sql_ 텍스트 동적 관리 함수입니다.sql_handle, together with statement_start_offset and statement_end_offset, can be used to retrieve the SQL text of the query by calling the sys.dm_exec_sql_text dynamic management function.
statement_start_offsetstatement_start_offset intint 0부터 시작하여 일괄 처리 또는 지속형 개체의 텍스트 내에서 행이 설명하는 쿼리의 시작 위치(바이트)를 나타냅니다.Indicates, in bytes, beginning with 0, the starting position of the query that the row describes within the text of its batch or persisted object.
statement_end_offsetstatement_end_offset intint 0부터 시작하여 일괄 처리 또는 지속형 개체의 텍스트 내에서 행이 설명하는 쿼리의 끝 위치(바이트)를 나타냅니다.Indicates, in bytes, starting with 0, the ending position of the query that the row describes within the text of its batch or persisted object. 이전 버전에 대 한 SQL Server 2014(12.x)SQL Server 2014 (12.x),-1은 일괄 처리의 끝을 나타냅니다.For versions before SQL Server 2014(12.x)SQL Server 2014 (12.x), a value of -1 indicates the end of the batch. 후행 주석은 더 이상 포함 합니다.Trailing comments are no longer include.
plan_generation_numplan_generation_num bigintbigint 다시 컴파일한 후 계획의 인스턴스 간을 서로 구별하는 데 사용될 수 있는 시퀀스 번호입니다.A sequence number that can be used to distinguish between instances of plans after a recompile.
plan_handleplan_handle varbinary(64)varbinary(64) 쿼리가 속하는 컴파일된 계획을 참조하는 토큰입니다.A token that refers to the compiled plan that the query is part of. 이 값을 전달할 수는 sys.dm_exec_query_plan 동적 관리 함수를 쿼리 계획을 가져옵니다.This value can be passed to the sys.dm_exec_query_plan dynamic management function to obtain the query plan.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0x000입니다.Will always be 0x000 when a natively compiled stored procedure queries a memory-optimized table.
creation_timecreation_time datetimedatetime 이 계획이 컴파일된 시간입니다.Time at which the plan was compiled.
last_execution_timelast_execution_time datetimedatetime 이 계획이 마지막으로 실행되기 시작한 시간입니다.Last time at which the plan started executing.
execution_countexecution_count bigintbigint 이 계획이 마지막으로 컴파일된 이후 실행된 횟수입니다.Number of times that the plan has been executed since it was last compiled.
total_worker_timetotal_worker_time bigintbigint 이 계획이 컴파일된 이후 실행되는 데 사용된 총 CPU 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Total amount of CPU time, reported in microseconds (but only accurate to milliseconds), that was consumed by executions of this plan since it was compiled.

고유하게 컴파일된 저장 프로시저의 경우 1초 미만이 소요되는 실행이 많으면 total_worker_time 이 정확하지 않을 수 있습니다.For natively compiled stored procedures, total_worker_time may not be accurate if many executions take less than 1 millisecond.
last_worker_timelast_worker_time bigintbigint 이 계획이 마지막으로 실행되었을 때 사용된 CPU 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.CPU time, reported in microseconds (but only accurate to milliseconds), that was consumed the last time the plan was executed. 11
min_worker_timemin_worker_time bigintbigint 단일 실행 중에 이 계획이 사용한 최소 CPU 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Minimum CPU time, reported in microseconds (but only accurate to milliseconds), that this plan has ever consumed during a single execution. 11
max_worker_timemax_worker_time bigintbigint 단일 실행 중에 이 계획이 사용한 최대 CPU 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Maximum CPU time, reported in microseconds (but only accurate to milliseconds), that this plan has ever consumed during a single execution. 11
total_physical_readstotal_physical_reads bigintbigint 이 계획이 컴파일된 이후 실행될 때 수행된 총 물리적 읽기 수입니다.Total number of physical reads performed by executions of this plan since it was compiled.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
last_physical_readslast_physical_reads bigintbigint 이 계획이 마지막으로 실행되었을 때 수행된 물리적 읽기 수입니다.Number of physical reads performed the last time the plan was executed.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
min_physical_readsmin_physical_reads bigintbigint 단일 실행 중 이 계획에서 수행한 최소 물리적 읽기 수입니다.Minimum number of physical reads that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
max_physical_readsmax_physical_reads bigintbigint 단일 실행 중 이 계획에서 수행한 최대 물리적 읽기 수입니다.Maximum number of physical reads that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
total_logical_writestotal_logical_writes bigintbigint 이 계획이 컴파일된 이후 실행될 때 수행된 총 논리적 쓰기 수입니다.Total number of logical writes performed by executions of this plan since it was compiled.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
last_logical_writeslast_logical_writes bigintbigint 버퍼 풀 페이지 수가 계획의 가장 최근에 완료 된 실행 하는 동안 정리 합니다.Number of buffer pool pages dirtied during the most recently completed execution of the plan.

페이지를 읽은 후 페이지가 됩니다 더티 처음에만 수정 됩니다.After a page is read, the page becomes dirty only the first time it is modified. 페이지 변경 되 면이 번호가 증가 합니다.When a page becomes dirty, this number is incremented. 이미 더티 페이지의 후속 수정이이 숫자는 영향을 주지 않습니다.Subsequent modifications of an already dirty page do not affect this number.

이 숫자는 메모리 최적화 테이블을 쿼리 하는 경우에 항상 0 됩니다.This number will always be 0 when querying a memory-optimized table.
min_logical_writesmin_logical_writes bigintbigint 단일 실행 중 이 계획에서 수행한 최소 논리적 쓰기 수입니다.Minimum number of logical writes that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
max_logical_writesmax_logical_writes bigintbigint 단일 실행 중 이 계획에서 수행한 최대 논리적 쓰기 수입니다.Maximum number of logical writes that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
total_logical_readstotal_logical_reads bigintbigint 이 계획이 컴파일된 이후 실행될 때 수행된 총 논리적 읽기 수입니다.Total number of logical reads performed by executions of this plan since it was compiled.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
last_logical_readslast_logical_reads bigintbigint 이 계획이 마지막으로 실행되었을 때 수행된 논리적 읽기 수입니다.Number of logical reads performed the last time the plan was executed.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
min_logical_readsmin_logical_reads bigintbigint 단일 실행 중 이 계획에서 수행한 최소 논리적 읽기 수입니다.Minimum number of logical reads that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
max_logical_readsmax_logical_reads bigintbigint 단일 실행 중 이 계획에서 수행한 최대 논리적 읽기 수입니다.Maximum number of logical reads that this plan has ever performed during a single execution.

메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 querying a memory-optimized table.
total_clr_timetotal_clr_time bigintbigint 시간 (마이크로초) (밀리초 단위 까지만 정확), 그러나 내에서 보고 MicrosoftMicrosoft .NET Framework.NET Framework 컴파일된 이후 실행 될 때이 계획의 CLR (공용 언어 런타임) 개체입니다.Time, reported in microseconds (but only accurate to milliseconds), consumed inside MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR) objects by executions of this plan since it was compiled. CLR 개체는 저장 프로시저, 함수, 트리거, 유형 및 집계일 수 있습니다.The CLR objects can be stored procedures, functions, triggers, types, and aggregates.
last_clr_timelast_clr_time bigintbigint 이 계획을 마지막으로 실행하는 동안 .NET Framework.NET Framework CLR 개체 내에서 실행에 사용한 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Time, reported in microseconds (but only accurate to milliseconds) consumed by execution inside .NET Framework.NET Framework CLR objects during the last execution of this plan. CLR 개체는 저장 프로시저, 함수, 트리거, 유형 및 집계일 수 있습니다.The CLR objects can be stored procedures, functions, triggers, types, and aggregates.
min_clr_timemin_clr_time bigintbigint 단일 실행 중에 .NET Framework.NET Framework CLR 개체 내에서 이 계획이 사용한 최소 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Minimum time, reported in microseconds (but only accurate to milliseconds), that this plan has ever consumed inside .NET Framework.NET Framework CLR objects during a single execution. CLR 개체는 저장 프로시저, 함수, 트리거, 유형 및 집계일 수 있습니다.The CLR objects can be stored procedures, functions, triggers, types, and aggregates.
max_clr_timemax_clr_time bigintbigint 단일 실행 중에 .NET Framework.NET Framework CLR 내에서 이 계획이 사용한 최대 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Maximum time, reported in microseconds (but only accurate to milliseconds), that this plan has ever consumed inside the .NET Framework.NET Framework CLR during a single execution. CLR 개체는 저장 프로시저, 함수, 트리거, 유형 및 집계일 수 있습니다.The CLR objects can be stored procedures, functions, triggers, types, and aggregates.
total_elapsed_timetotal_elapsed_time bigintbigint 이 계획의 실행을 완료하는 데 소요된 총 경과 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Total elapsed time, reported in microseconds (but only accurate to milliseconds), for completed executions of this plan.
last_elapsed_timelast_elapsed_time bigintbigint 이 계획의 실행을 가장 최근에 완료하는 데 소요된 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Elapsed time, reported in microseconds (but only accurate to milliseconds), for the most recently completed execution of this plan.
min_elapsed_timemin_elapsed_time bigintbigint 이 계획의 실행을 완료하는 데 소요된 최소 경과 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Minimum elapsed time, reported in microseconds (but only accurate to milliseconds), for any completed execution of this plan.
max_elapsed_timemax_elapsed_time bigintbigint 이 계획의 실행을 완료하는 데 소요된 최대 경과 시간(마이크로초 단위로 보고되지만 밀리초 단위까지만 정확함)입니다.Maximum elapsed time, reported in microseconds (but only accurate to milliseconds), for any completed execution of this plan.
query_hashquery_hash Binary(8)Binary(8) 쿼리에서 계산되는 이진 해시 값으로, 비슷한 논리를 가진 쿼리를 식별하는 데 사용됩니다.Binary hash value calculated on the query and used to identify queries with similar logic. 쿼리 해시를 사용하여 리터럴 값만 다른 쿼리에 대한 집계 리소스 사용을 확인할 수 있습니다.You can use the query hash to determine the aggregate resource usage for queries that differ only by literal values.
query_plan_hashquery_plan_hash binary(8)binary(8) 쿼리 실행 계획에서 계산되는 이진 해시 값으로, 비슷한 쿼리 실행 계획을 식별하는 데 사용됩니다.Binary hash value calculated on the query execution plan and used to identify similar query execution plans. 쿼리 계획 해시를 사용하여 비슷한 실행 계획을 가진 쿼리의 누적 비용을 찾을 수 있습니다.You can use query plan hash to find the cumulative cost of queries with similar execution plans.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0x000입니다.Will always be 0x000 when a natively compiled stored procedure queries a memory-optimized table.
total_rowstotal_rows bigintbigint 쿼리에서 반환한 총 이벤트 수입니다.Total number of rows returned by the query. null일 수 없습니다.Cannot be null.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 when a natively compiled stored procedure queries a memory-optimized table.
last_rowslast_rows bigintbigint 마지막 실행 쿼리에서 반환한 행 수입니다.Number of rows returned by the last execution of the query. null일 수 없습니다.Cannot be null.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 when a natively compiled stored procedure queries a memory-optimized table.
min_rowsmin_rows bigintbigint 어느 한 번 실행 하는 동안 쿼리에서 반환 되는 행의 최소 수입니다.Minimum number of rows ever returned by the query during one execution. null일 수 없습니다.Cannot be null.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 when a natively compiled stored procedure queries a memory-optimized table.
max_rowsmax_rows bigintbigint 어느 한 번 실행 하는 동안 쿼리에서 반환 되는 행의 최대 수입니다.Maximum number of rows ever returned by the query during one execution. null일 수 없습니다.Cannot be null.

고유하게 컴파일된 저장 프로시저에서 메모리 최적화 테이블을 쿼리하는 경우 항상 0입니다.Will always be 0 when a natively compiled stored procedure queries a memory-optimized table.
statement_sql_handlestatement_sql_handle varbinary(64)varbinary(64) 적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

쿼리 저장소 설정한 경우에 NULL이 아닌 값으로 채워진 및 해당 특정 쿼리에 대 한 통계를 수집 합니다.Populated with non-NULL values only if Query Store is turned on and collecting the stats for that particular query.
statement_context_idstatement_context_id bigintbigint 적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

쿼리 저장소 설정한 경우에 NULL이 아닌 값으로 채워진 및 해당 특정 쿼리에 대 한 통계를 수집 합니다.Populated with non-NULL values only if Query Store is turned on and collecting the stats for that particular query.
total_doptotal_dop bigintbigint 병렬 처리 수준의 총 합계는이 계획이 컴파일된 이후 사용.The total sum of degree of parallelism this plan used since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_doplast_dop bigintbigint 이 계획이 마지막으로 실행 하는 경우 병렬 처리 수준입니다.The degree of parallelism when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_dopmin_dop bigintbigint 최소 병렬 처리 수준을이 계획이 사용한 적이 한 번 실행 하는 동안.The minimum degree of parallelism this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_dopmax_dop bigintbigint 최대 병렬 처리 수준을이 계획이 사용한 적이 한 번 실행 하는 동안.The maximum degree of parallelism this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_grant_kbtotal_grant_kb bigintbigint 총 예약 된 메모리 부여 (kb)이이 계획이 컴파일된 이후 수신 합니다.The total amount of reserved memory grant in KB this plan received since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_grant_kblast_grant_kb bigintbigint 이 계획이 마지막으로 실행 하는 경우 예약 된 메모리 양 (kb)에서 부여 합니다.The amount of reserved memory grant in KB when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_grant_kbmin_grant_kb bigintbigint 최소한의 예약 된 메모리 부여 (kb) 적이 한 번 실행 하는 동안 수신이 계획 합니다.The minimum amount of reserved memory grant in KB this plan ever received during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_grant_kbmax_grant_kb bigintbigint 예약 된 메모리의 최대 크기 (kb)에서 적이 한 번 실행 하는 동안 수신이 계획을 부여 합니다.The maximum amount of reserved memory grant in KB this plan ever received during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_used_grant_kbtotal_used_grant_kb bigintbigint 총 예약 된 메모리 부여 (kb)이이 계획이 컴파일된 이후 사용 합니다.The total amount of reserved memory grant in KB this plan used since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_used_grant_kblast_used_grant_kb bigintbigint 사용된 된 메모리 부여 (kb)가이 계획이 마지막으로 실행 하는 경우의 양입니다.The amount of used memory grant in KB when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_used_grant_kbmin_used_grant_kb bigintbigint 최소한의 사용된 된 메모리 부여 (kb) 한 번 실행 하는 동안 사용한 적이이 계획 합니다.The minimum amount of used memory grant in KB this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_used_grant_kbmax_used_grant_kb bigintbigint 최대 사용된 된 메모리 부여 (kb) 한 번 실행 하는 동안 사용한 적이이 계획 합니다.The maximum amount of used memory grant in KB this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_ideal_grant_kbtotal_ideal_grant_kb bigintbigint 이 계획이 컴파일된 이후 예상 2!d!(kb에서 이상적인 메모리 부여의 총 양입니다.The total amount of ideal memory grant in KB this plan estimated since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_ideal_grant_kblast_ideal_grant_kb bigintbigint 이 계획이 마지막으로 실행 하는 경우 이상적인 메모리 양 (kb)에서 부여 합니다.The amount of ideal memory grant in KB when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_ideal_grant_kbmin_ideal_grant_kb bigintbigint 이 계획 적이 한 번 실행 하는 동안 예상 2!d!(kb에서 최소한의 이상적인 메모리 부여 합니다.The minimum amount of ideal memory grant in KB this plan ever estimated during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_ideal_grant_kbmax_ideal_grant_kb bigintbigint 이 계획 적이 한 번 실행 하는 동안 예상 2!d!(kb에서 최대 이상적인 메모리 부여 합니다.The maximum amount of ideal memory grant in KB this plan ever estimated during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_reserved_threadstotal_reserved_threads bigintbigint 예약 된 병렬의 총 합계는이 계획이 컴파일된 이후를 사용한 적이 스레드입니다.The total sum of reserved parallel threads this plan ever used since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_reserved_threadslast_reserved_threads bigintbigint 이 계획이 마지막으로 실행 하는 경우 예약 된 병렬 스레드의 수입니다.The number of reserved parallel threads when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_reserved_threadsmin_reserved_threads bigintbigint 예약 된 병렬 최소 한 번 실행 하는 동안 사용한 적이이 계획을 스레드입니다.The minimum number of reserved parallel threads this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_reserved_threadsmax_reserved_threads bigintbigint 예약 된 동시 최대 한 번 실행 하는 동안 사용한 적이이 계획을 스레드입니다.The maximum number of reserved parallel threads this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_used_threadstotal_used_threads bigintbigint 총 합계는이 계획이 컴파일된 이후를 사용한 적이 병렬 스레드를 사용 합니다.The total sum of used parallel threads this plan ever used since it was compiled. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
last_used_threadslast_used_threads bigintbigint 이 계획이 마지막으로 실행 하는 경우 사용 되는 병렬 스레드의 수입니다.The number of used parallel threads when this plan executed last time. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
min_used_threadsmin_used_threads bigintbigint 한 번 실행 하는 동안이 계획이 사용한 적이 사용 되는 병렬 스레드의 최소 수입니다.The minimum number of used parallel threads this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
max_used_threadsmax_used_threads bigintbigint 한 번 실행 하는 동안이 계획이 사용한 적이 사용 되는 병렬 스레드의 최대 수입니다.The maximum number of used parallel threads this plan ever used during one execution. 항상 메모리에 최적화 된 테이블을 쿼리 하는 것에 대 한 0 됩니다.It will always be 0 for querying a memory-optimized table.

적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017.
total_columnstore_segment_readstotal_columnstore_segment_reads bigintbigint 쿼리가 읽은 columnstore 세그먼트의 총 합계입니다.The total sum of columnstore segments read by the query. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
last_columnstore_segment_readslast_columnstore_segment_reads bigintbigint 쿼리의 마지막 실행 읽은 columnstore 세그먼트의 수입니다.The number of columnstore segments read by the last execution of the query. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
min_columnstore_segment_readsmin_columnstore_segment_reads bigintbigint 지금까지 한 번 실행 하는 동안 쿼리에서 읽은 columnstore 세그먼트의 최소 수입니다.The minimum number of columnstore segments ever read by the query during one execution. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
max_columnstore_segment_readsmax_columnstore_segment_reads bigintbigint 지금까지 한 번 실행 하는 동안 쿼리에서 읽은 columnstore 세그먼트의 최대 수입니다.The maximum number of columnstore segments ever read by the query during one execution. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
total_columnstore_segment_skipstotal_columnstore_segment_skips bigintbigint 쿼리에 의해 건너뛴 columnstore 세그먼트의 총 합계입니다.The total sum of columnstore segments skipped by the query. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
last_columnstore_segment_skipslast_columnstore_segment_skips bigintbigint 마지막 쿼리 실행 하 여 건너뛴 columnstore 세그먼트의 수입니다.The number of columnstore segments skipped by the last execution of the query. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
min_columnstore_segment_skipsmin_columnstore_segment_skips bigintbigint 적이 한 번 실행 하는 동안 쿼리에서 건너뛴 columnstore 세그먼트의 최소 수입니다.The minimum number of columnstore segments ever skipped by the query during one execution. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
max_columnstore_segment_skipsmax_columnstore_segment_skips bigintbigint 적이 한 번 실행 하는 동안 쿼리에서 건너뛴 columnstore 세그먼트의 최대 수입니다.The maximum number of columnstore segments ever skipped by the query during one execution. null일 수 없습니다.Cannot be null.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
total_spillstotal_spills bigintbigint 컴파일된 이후이 쿼리의 실행에 의해 유출 되는 페이지의 총 수입니다.The total number of pages spilled by execution of this query since it was compiled.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
last_spillslast_spills bigintbigint 쿼리가 실행 된 마지막으로 유출 되는 페이지 수입니다.The number of pages spilled the last time the query was executed.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
min_spillsmin_spills bigintbigint 이 쿼리는 단일 실행 중 유출 된 적이 있는 페이지의 최소 수입니다.The minimum number of pages that this query has ever spilled during a single execution.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
max_spillsmax_spills bigintbigint 이 쿼리는 단일 실행 중 유출 된 적이 있는 페이지의 최대 수입니다.The maximum number of pages that this query has ever spilled during a single execution.

적용 대상: 부터는 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 및 SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3Applies to: Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP2 and SQL Server 2017(14.x)SQL Server 2017 (14.x) CU3
pdw_node_idpdw_node_id intint 이 배포에 있는 노드에 대 한 식별자입니다.The identifier for the node that this distribution is on.

적용 대상: Azure SQL 데이터 웨어하우스Azure SQL Data Warehouse, 병렬 데이터 웨어하우스Parallel Data WarehouseApplies to: Azure SQL 데이터 웨어하우스Azure SQL Data Warehouse, 병렬 데이터 웨어하우스Parallel Data Warehouse

참고

1 고유 하 게 컴파일된 저장된 프로시저에 대 한 통계 컬렉션을 사용 하면 작업자 시간이 밀리초 단위로 수집 됩니다.1 For natively compiled stored procedures when statistics collection is enabled, worker time is collected in milliseconds. 쿼리 1 밀리초 미만이 실행 하는 경우 값은 0이 됩니다.If the query executes in less than one millisecond, the value will be 0.

사용 권한Permissions

SQL ServerSQL Server, 필요한 VIEW SERVER STATE 권한.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
SQL DatabaseSQL Database, 필요를 VIEW DATABASE STATE 데이터베이스의 권한.On SQL DatabaseSQL Database, requires the VIEW DATABASE STATE permission in the database.

RemarksRemarks

쿼리가 완료되면 뷰의 통계가 업데이트됩니다.Statistics in the view are updated when a query is completed.

Examples

1.A. TOP N 쿼리 찾기Finding the TOP N queries

다음 예에서는 평균 CLR 시간을 기준으로 상위 5개의 쿼리에 대한 정보를 반환합니다.The following example returns information about the top five queries ranked by average CPU time. 이 예에서는 논리적으로 동일한 쿼리를 누적 리소스 소비량에 따라 그룹화할 수 있도록 쿼리 해시에 따라 쿼리를 집계합니다.This example aggregates the queries according to their query hash so that logically equivalent queries are grouped by their cumulative resource consumption.

SELECT TOP 5 query_stats.query_hash AS "Query Hash",   
    SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time",  
    MIN(query_stats.statement_text) AS "Statement Text"  
FROM   
    (SELECT QS.*,   
    SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,  
    ((CASE statement_end_offset   
        WHEN -1 THEN DATALENGTH(ST.text)  
        ELSE QS.statement_end_offset END   
            - QS.statement_start_offset)/2) + 1) AS statement_text  
     FROM sys.dm_exec_query_stats AS QS  
     CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats  
GROUP BY query_stats.query_hash  
ORDER BY 2 DESC;  

2.B. 쿼리에 대한 행 개수 집계 반환Returning row count aggregates for a query

다음 예에서는 쿼리에 대한 행 개수 집계 정보(합계 행, 최소 행, 최대 행 및 마지막 행)를 반환합니다.The following example returns row count aggregate information (total rows, minimum rows, maximum rows and last rows) for queries.

SELECT qs.execution_count,  
    SUBSTRING(qt.text,qs.statement_start_offset/2 +1,   
                 (CASE WHEN qs.statement_end_offset = -1   
                       THEN LEN(CONVERT(nvarchar(max), qt.text)) * 2   
                       ELSE qs.statement_end_offset end -  
                            qs.statement_start_offset  
                 )/2  
             ) AS query_text,   
     qt.dbid, dbname= DB_NAME (qt.dbid), qt.objectid,   
     qs.total_rows, qs.last_rows, qs.min_rows, qs.max_rows  
FROM sys.dm_exec_query_stats AS qs   
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt   
WHERE qt.text like '%SELECT%'   
ORDER BY qs.execution_count DESC;  

참고자료See also

실행 관련 동적 관리 뷰 및 함수 (TRANSACT-SQL) Execution Related Dynamic Management Views and Functions (Transact-SQL)
sys.dm_exec_sql_text (TRANSACT-SQL) sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (TRANSACT-SQL) sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_procedure_stats (TRANSACT-SQL) sys.dm_exec_procedure_stats (Transact-SQL)
sys.dm_exec_trigger_stats (TRANSACT-SQL) sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (TRANSACT-SQL)sys.dm_exec_cached_plans (Transact-SQL)