시스템 동적 관리뷰를 활용한 세션 정보 조회
MsSQL에 현재 붙어있는 세션들에 대한 정보를 조회하는 방법으로 시스템 동적 관리 뷰를 사용한다.
이런 뷰를 여러가지를 조합하여 원하는 정보를 알 수 있는데, 기본적으로 자주 사용되고 필요한 정보들을 조회하는 쿼리를 소개하도록 하겠다.
세션 조회
바로 쿼리를 설명하자면 아래와 같다.
select r.session_id,
r.blocking_session_id,
r.status,
r.command,
r.wait_type,
r.wait_time,
s.host_name,
s.program_name,
s.login_name,
c.client_net_address,
substring(t.text,
(r.statement_start_offset/2) + 1,
((case r.statement_end_offset
when -1 then datalength(t.text)
else r.statement_end_offset
end - r.statement_start_offset)/2) + 1) as query_text,
t.text
from SYS.DM_EXEC_REQUESTS r
inner join SYS.DM_EXEC_SESSIONS s
on r.session_id = s.session_id
inner join SYS.DM_EXEC_CONNECTIONS c
on r.session_id = c.session_id
cross apply SYS.DM_EXEC_SQL_TEXT(r.sql_handle) t
간단하게 컬럼들에 대해서 설명하자면 아래와 같다.
session_id : 연결 되어있는 세션의 ID
blocking_session_id : 해당 세션의 실행을 막고있는 Lock걸려있는 세션의 ID
status : 세션의 실행 상태
command : 세션에서 실행되고 있는 커멘드 정보
wait_type : 세션의 대기상태 ( Lock 정보)
wait_time : 세션의 대기시간
host_name : 해당 세션으로 연결되어있는 host의 name
program_name : 해당 세션을 실행하고 있는 프로그램의 name
login_name : 해당 세션에 접속한 계정
client_net_address : 해당 세션에 접속한 host의 IP주소
query_text : 실행중인 쿼리 블록
text : 해당 세션에 실행한 모든 쿼리
반응형
간략하게 정리하면 이정도의 정보를 얻을 수 있는 쿼리이다.
시스템 동적 관리 뷰는 여러가지 뷰가 있기에 해당 쿼리의 기초적인 정보뿐아니라,
여러 뷰를 조인하여 더 자세하고 새로운 정보도 알 수 있으니 한번쯤 둘러보며 필요한 쿼리를 만드는 것을 추천한다.
Reference
반응형
'DATABASE > MsSQL' 카테고리의 다른 글
[MsSQL] SET STATISTICS 옵션을 활용 - 실제 실행 계획 상세보기 (0) | 2024.11.20 |
---|---|
[MsSQL] 프로시저 내용 찾기 - 특정 테이블이 사용되는 프로시저 찾기 (1) | 2024.11.16 |
[MsSQL] 백업 파일 관리 - 최근 전체 백업과 하위 로그 백업 확인하기 (2) | 2024.11.14 |
[MsSQL] 마지막 페이지 Latch 경합 (Insert 지연 튜닝) - 2. 테스트 및 적용 (0) | 2024.11.13 |
[MsSQL] 마지막 페이지 Latch 경합 (Insert 지연 튜닝) - 1. 원인 찾기 (1) | 2024.11.08 |
[MsSQL] 실행 했던 쿼리 실행 계획 찾기 (0) | 2024.11.07 |
[MsSQL] DBCC WRITEPAGE를 활용한 Data Page 오류 만들기 및 테스트 (2) | 2024.10.07 |
[MsSQL] SQL Server - Log Shipping 을 활용한 이중화 (DR 구성) (0) | 2024.07.22 |