DMV를 사용하여 연결, 세션 및 요청 모니터링
적용 대상:✅ Microsoft Fabric의 SQL 분석 엔드포인트 및 웨어하우스
기존 DMV(동적 관리 뷰)를 사용하여 Microsoft Fabric에서 연결, 세션 및 요청 상태를 모니터링할 수 있습니다. T-SQL 쿼리를 실행하는 도구 및 방법에 대한 자세한 내용은 웨어하우스 쿼리를 참조하세요.
쿼리 수명 주기 DMV를 사용하여 연결, 세션 및 요청을 모니터링하는 방법
현재 버전의 경우 라이브 SQL 쿼리 수명 주기 인사이트를 받을 수 있도록 세 가지 DMV(동적 관리 뷰)가 제공됩니다.
- sys.dm_exec_connections
- 웨어하우스와 엔진 간에 설정된 각 연결에 대한 정보를 반환합니다.
- sys.dm_exec_sessions
- 항목과 엔진 간에 인증된 각 세션에 대한 정보를 반환합니다.
- sys.dm_exec_requests
- 세션의 각 활성 요청에 대한 정보를 반환합니다.
이러한 세 가지 DMV는 다음 시나리오에 대한 자세한 인사이트를 제공합니다.
- 세션을 실행하는 사용자는 누구인가요?
- 사용자가 세션을 시작한 시기는 언제인가요?
- Data Warehouse에 대한 연결의 ID와 요청을 실행하는 세션의 ID는 무엇인가요?
- 얼마나 많은 쿼리가 적극적으로 실행되고 있나요?
- 장기 실행 중인 쿼리는 무엇인가요?
이 자습서에서는 DMV(동적 관리 뷰)를 사용하여 실행 중인 SQL 쿼리를 모니터링하는 방법을 알아봅니다.
샘플 DMV 쿼리
다음 예제에서는 현재 실행 중인 모든 세션을 찾기 위해 sys.dm_exec_sessions
을(를) 쿼리합니다.
SELECT *
FROM sys.dm_exec_sessions;
연결과 세션 간의 관계 찾기
다음 예제에서는 sys.dm_exec_connections
및 sys.dm_exec_sessions
을(를) 특정 연결에서 활성 세션 간의 관계에 조인합니다.
SELECT connections.connection_id,
connections.connect_time,
sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;
장기 실행 쿼리 식별 및 KILL
이 첫 번째 쿼리는 쿼리가 도착한 이후 가장 오래 걸린 순서대로 장기 실행 쿼리 목록을 식별합니다.
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
이 두 번째 쿼리는 장기 실행 쿼리가 있는 세션을 실행한 사용자를 보여줍니다.
SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';
이 세 번째 쿼리는 장기 실행 쿼리에서 session_id
에 KILL 명령을 사용하는 방법을 보여줍니다.
KILL 'SESSION_ID WITH LONG-RUNNING QUERY'
예를 들어
KILL '101'
사용 권한
- 관리자는 세 개의 DMV(
sys.dm_exec_connections
,sys.dm_exec_sessions
,sys.dm_exec_requests
)를 모두 실행하여 작업 영역 내에서 자신과 다른 사람의 정보를 볼 수 있는 권한이 있습니다. - 멤버, 기여자 및 뷰어는 웨어하우스 내에서 자체 결과와
sys.dm_exec_sessions
및sys.dm_exec_requests
을(를) 실행하고 볼 수 있지만sys.dm_exec_connections
을(를) 실행할 수 있는 권한은 없습니다. - 관리자만
KILL
명령을 실행할 수 있는 권한이 있습니다.