다음을 통해 공유


DMV를 사용하여 연결, 세션 및 요청 모니터링

적용 대상:✅ Microsoft Fabric의 SQL 분석 엔드포인트 및 웨어하우스

기존 DMV(동적 관리 뷰)를 사용하여 Microsoft Fabric에서 연결, 세션 및 요청 상태를 모니터링할 수 있습니다. T-SQL 쿼리를 실행하는 도구 및 방법에 대한 자세한 내용은 웨어하우스 쿼리를 참조하세요.

쿼리 수명 주기 DMV를 사용하여 연결, 세션 및 요청을 모니터링하는 방법

현재 버전의 경우 라이브 SQL 쿼리 수명 주기 인사이트를 받을 수 있도록 세 가지 DMV(동적 관리 뷰)가 제공됩니다.

이러한 세 가지 DMV는 다음 시나리오에 대한 자세한 인사이트를 제공합니다.

  • 세션을 실행하는 사용자는 누구인가요?
  • 사용자가 세션을 시작한 시기는 언제인가요?
  • Data Warehouse에 대한 연결의 ID와 요청을 실행하는 세션의 ID는 무엇인가요?
  • 얼마나 많은 쿼리가 적극적으로 실행되고 있나요?
  • 장기 실행 중인 쿼리는 무엇인가요?

이 자습서에서는 DMV(동적 관리 뷰)를 사용하여 실행 중인 SQL 쿼리를 모니터링하는 방법을 알아봅니다.

샘플 DMV 쿼리

다음 예제에서는 현재 실행 중인 모든 세션을 찾기 위해 sys.dm_exec_sessions을(를) 쿼리합니다.

SELECT * 
FROM sys.dm_exec_sessions;

연결과 세션 간의 관계 찾기

다음 예제에서는 sys.dm_exec_connectionssys.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_sessionssys.dm_exec_requests을(를) 실행하고 볼 수 있지만 sys.dm_exec_connections을(를) 실행할 수 있는 권한은 없습니다.
  • 관리자만 KILL 명령을 실행할 수 있는 권한이 있습니다.