https://msdn.microsoft.com/ko-kr/library/ms177648.aspx
**이 항목은 다음에 적용됩니다.:** ![](../Image/Applies%20to/yes.png)SQL Server\(2008부터 시작\) ![](../Image/Applies%20to/yes.png)Azure SQL 데이터베이스 ![](../Image/Applies%20to/yes.png)Azure SQL 데이터 웨어하우스 ![](../Image/Applies%20to/yes.png)병렬 데이터 웨어하우스
SQL Server에서 실행 중인 각 요청에 대한 정보를 반환합니다.
|
---|
|
적용 대상: SQL Server(SQL Server 2008부터 현재 버전), Azure SQL 데이터베이스. |
열 이름 | 데이터 형식 | 설명 |
---|---|---|
session_id | smallint | 이 요청과 관련된 세션의 ID입니다. Null을 허용하지 않습니다. |
request_id | int | 요청의 ID입니다. 세션의 컨텍스트에서 고유합니다. Null을 허용하지 않습니다. |
start_time | datetime | 요청이 도착한 타임스탬프입니다. Null을 허용하지 않습니다. |
status | nvarchar(30) | 요청의 상태입니다. 다음 값 중 하나일 수 있습니다. - 배경 - 실행 중 - 실행 가능 - 중지 중 - 일시 중지됨 Null을 허용하지 않습니다. |
command | nvarchar(32) | 처리되고 있는 명령의 현재 유형을 식별합니다. 일반 명령 유형은 다음과 같습니다. - SELECT - INSERT - UPDATE - DELETE - BACKUP LOG - BACKUP DATABASE - DBCC - FOR 요청 텍스트는 요청에 대한 해당 sql_handle과 함께 sys.dm_exec_sql_text를 사용하여 검색할 수 있습니다. 내부 시스템 프로세스는 수행하는 태스크 유형에 따라 명령을 설정합니다. 태스크는 다음과 같습니다. - LOCK MONITOR - CHECKPOINTLAZY - WRITER Null을 허용하지 않습니다. |
sql_handle | varbinary(64) | 요청에 대한 SQL 텍스트의 해시 맵입니다. Null을 허용합니다. |
statement_start_offset | int | 현재 실행 중인 일괄 처리 또는 저장 프로시저에서 현재 실행 중인 문이 시작되는 위치까지의 문자 수입니다. sql_handle, statement_end_offset 및 sys.dm_exec_sql_text 동적 관리 함수와 함께 사용하여 요청에 대해 현재 실행 중인 문을 검색할 수 있습니다. Null을 허용합니다. |
statement_end_offset | int | 현재 실행 중인 일괄 처리 또는 저장 프로시저에서 현재 실행 중인 문이 종료되는 위치까지의 문자 수입니다. sql_handle, statement_end_offset 및 sys.dm_exec_sql_text 동적 관리 함수와 함께 사용하여 요청에 대해 현재 실행 중인 문을 검색할 수 있습니다. Null을 허용합니다. |
plan_handle | varbinary(64) | SQL 실행을 위한 계획의 해시 맵입니다. Null을 허용합니다. |
database_id | smallint | 요청을 실행 중인 대상 데이터베이스의 ID입니다. Null을 허용하지 않습니다. |
user_id | int | 요청을 제출한 사용자의 ID입니다. Null을 허용하지 않습니다. |
connection_id | uniqueidentifier | 요청이 도착한 연결의 ID입니다. Null을 허용합니다. |
blocking_session_id | smallint | 요청을 차단하고 있는 세션의 ID입니다. 이 열이 NULL이면 요청이 차단되지 않거나 차단 세션의 세션 정보를 사용할 수 없습니다(또는 식별할 수 없음). -2 = 분리된 분산 트랜잭션이 차단 리소스를 소유합니다. -3 = 지연된 복구 트랜잭션이 차단 리소스를 소유합니다. -4 = 내부 래치 상태 전환 때문에 현재 차단 래치 소유자의 세션 ID를 확인할 수 없습니다. |
wait_type | nvarchar(60) | 요청이 현재 차단된 경우 이 열은 대기 유형을 반환합니다. Null을 허용합니다. 대기 유형에 대한 자세한 내용은 sys.dm_os_wait_stats(Transact-SQL)을 참조하세요. |
wait_time | int | 요청이 현재 차단된 경우 이 열은 현재 대기의 기간(밀리초)을 반환합니다. Null을 허용하지 않습니다. |
last_wait_type | nvarchar(60) | 이 요청이 이전에 차단된 경우 이 열은 마지막 대기의 유형을 반환합니다. Null을 허용하지 않습니다. |
wait_resource | nvarchar(256) | 요청이 현재 차단된 경우 이 열은 요청이 현재 대기하고 있는 리소스를 반환합니다. Null을 허용하지 않습니다. |
open_transaction_count | int | 이 요청에 대해 열린 트랜잭션 수입니다. Null을 허용하지 않습니다. |
open_resultset_count | int | 이 요청에 대해 열린 결과 집합 수입니다. Null을 허용하지 않습니다. |
transaction_id | bigint | 이 요청이 실행되는 트랜잭션의 ID입니다. Null을 허용하지 않습니다. |
context_info | varbinary(128) | 세션의 CONTEXT_INFO 값입니다. Null을 허용합니다. |
percent_complete | real | 다음 명령에 대한 작업 완료율입니다. - ALTER INDEX REORGANIZE - ALTER DATABASE의 AUTO_SHRINK 옵션 - BACKUP DATABASE - DBCC CHECKDB - DBCC CHECKFILEGROUP - DBCC CHECKTABLE - DBCC INDEXDEFRAG - DBCC SHRINKDATABASE - DBCC SHRINKFILE - RECOVERY - RESTORE DATABASE - ROLLBACK - TDE ENCRYPTION Null을 허용하지 않습니다. |
estimated_completion_time | bigint | 내부 전용입니다. Null을 허용하지 않습니다. |
cpu_time | int | 요청에 사용된 CPU 시간(밀리초)입니다. Null을 허용하지 않습니다. |
total_elapsed_time | int | 요청이 도착한 이후 경과한 총 시간(밀리초)입니다. Null을 허용하지 않습니다. |
scheduler_id | int | 이 요청을 예약하고 있는 스케줄러의 ID입니다. Null을 허용하지 않습니다. |
task_address | varbinary(8) | 이 요청과 연관된 태스크에 할당된 메모리 주소입니다. Null을 허용합니다. |
reads | bigint | 이 요청에서 수행된 읽기 수입니다. Null을 허용하지 않습니다. |
writes | bigint | 이 요청에서 수행된 쓰기 수입니다. Null을 허용하지 않습니다. |
logical_reads | bigint | 요청에서 수행된 논리적 읽기 수입니다. Null을 허용하지 않습니다. |
text_size | int | 이 요청에 대한 TEXTSIZE 설정입니다. Null을 허용하지 않습니다. |
language | nvarchar(128) | 요청에 대한 언어 설정입니다. Null을 허용합니다. |
date_format | nvarchar(3) | 요청에 대한 DATEFORMAT 설정입니다. Null을 허용합니다. |
date_first | smallint | 요청에 대한 DATEFIRST 설정입니다. Null을 허용하지 않습니다. |
quoted_identifier | bit | 1 = QUOTED_IDENTIFIER가 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
arithabort | bit | 1 = ARITHABORT 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
ansi_null_dflt_on | bit | 1 = ANSI_NULL_DFLT_ON 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
ansi_defaults | bit | 1 = ANSI_DEFAULTS 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
ansi_warnings | bit | 1 = ANSI_WARNINGS 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
ansi_padding | bit | 1 = ANSI_PADDING 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
ansi_nulls | bit | 1 = ANSI_NULLS 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
concat_null_yields_null | bit | 1 = CONCAT_NULL_YIELDS_NULL 설정이 요청에 대해 on입니다. 그렇지 않으면 0입니다. Null을 허용하지 않습니다. |
transaction_isolation_level | smallint | 이 요청이 만들어진 트랜잭션의 격리 수준을 나타냅니다. Null을 허용하지 않습니다. 0 = 지정되지 않음 1 = 커밋되지 않은 읽기 2 = 커밋된 읽기 3 = 반복 읽기 4 = 직렬화 가능 5 = 스냅숏 |
lock_timeout | int | 이 요청에 대한 잠금 제한 시간(밀리초)입니다. Null을 허용하지 않습니다. |
deadlock_priority | int | 요청에 대한 DEADLOCK_PRIORITY 설정입니다. Null을 허용하지 않습니다. |
row_count | bigint | 이 요청에서 클라이언트에 반환된 행 수입니다. Null을 허용하지 않습니다. |
prev_error | int | 요청이 실행되는 동안 마지막으로 발생한 오류입니다. Null을 허용하지 않습니다. |
nest_level | int | 요청에서 실행되고 있는 코드의 현재 중첩 수준입니다. Null을 허용하지 않습니다. |
granted_query_memory | int | 요청에서 쿼리의 실행에 할당된 페이지 수입니다. Null을 허용하지 않습니다. |
executing_managed_code | bit | 특정 요청이 루틴, 유형 및 트리거 같은 공용 언어 런타임 개체를 현재 실행하고 있는지 나타냅니다. 공용 언어 런타임 개체가 스택에 있을 때 항상 설정되며 공용 언어 런타임 내에서 Transact-SQL을 실행하는 동안에도 마찬가지입니다. Null을 허용하지 않습니다. |
group_id | int | 이 쿼리가 속한 작업 그룹의 ID입니다. Null을 허용하지 않습니다. |
query_hash | binary(8) | 쿼리에서 계산되는 이진 해시 값으로, 비슷한 논리를 가진 쿼리를 식별하는 데 사용됩니다. 쿼리 해시를 사용하여 리터럴 값만 다른 쿼리에 대한 집계 리소스 사용을 확인할 수 있습니다. |
query_plan_hash | binary(8) | 쿼리 실행 계획에서 계산되는 이진 해시 값으로, 비슷한 쿼리 실행 계획을 식별하는 데 사용됩니다. 쿼리 계획 해시를 사용하여 비슷한 실행 계획을 가진 쿼리의 누적 비용을 찾을 수 있습니다. |
statement_sql_handle | varbinary(64) | 적용 대상: SQL Server 2014 - SQL Server 2016. 나중에 사용하도록 예약되어 있습니다. |
statement_context_id | bigint | 적용 대상: SQL Server 2014 - SQL Server 2016. 나중에 사용하도록 예약되어 있습니다. |
서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
|
---|
|
1.실행 중인 일괄 처리에 대한 쿼리 텍스트 찾기
다음 예에서는 sys.dm_exec_requests를 쿼리하여 필요한 쿼리를 찾고 출력에서 sql_handle
을 복사합니다.
SELECT * FROM sys.dm_exec_requests; GO
그런 다음 문 텍스트를 가져오기 위해 복사한 sql_handle
을 sys.dm_exec_sql_text(sql_handle)
시스템 함수와 함께 사용합니다.
SELECT * FROM sys.dm_exec_sql_text(< copied sql_handle >); GO
2.실행 중인 일괄 처리에서 보유하고 있는 모든 잠금 찾기
다음 예에서는 sys.dm_exec_requests를 쿼리하여 필요한 일괄 처리를 찾고 출력에서 transaction_id
를 복사합니다.
SELECT * FROM sys.dm_exec_requests; GO
그런 다음 잠금 정보를 찾기 위해 복사한 transaction_id
를 sys.dm_tran_locks 시스템 함수와 함께 사용합니다.
SELECT * FROM sys.dm_tran_locks WHERE request_owner_type = N'TRANSACTION' AND request_owner_id = < copied transaction_id >; GO
3.현재 차단된 모든 요청 찾기
다음 예에서는 sys.dm_exec_requests를 쿼리하여 차단된 요청에 대한 정보를 찾습니다.
SELECT session_id ,status ,blocking_session_id ,wait_type ,wait_time ,wait_resource ,transaction_id FROM sys.dm_exec_requests WHERE status = N'suspended'; GO
동적 관리 뷰 및 함수(Transact-SQL)
실행 관련 동적 관리 뷰 및 함수(Transact-SQL)
sys.dm_os_memory_clerks(Transact-SQL)
sys.dm_os_sys_info(Transact-SQL)
sys.dm_exec_query_memory_grants(Transact-SQL)
sys.dm_exec_query_plan(Transact-SQL)
sys.dm_exec_sql_text(Transact-SQL)
'Database > MS-SQL' 카테고리의 다른 글
[스크랩] 라이센스 키 확인하기, 교체하기 (0) | 2017.01.16 |
---|---|
[스크랩] sp_lock, sys.dm_os_wait_stats(Transact-SQL) (0) | 2016.11.22 |
[스크랩] MS 추가지원 일반지원 차이 (0) | 2016.11.16 |
[스크랩] sqldiag xel 확장이벤트로그 관련 내용 (0) | 2016.11.04 |
[스크랩] [SQLNULL] Study - SQL Server Architecture (0) | 2016.10.26 |