현재 작업, 세션, 요청 또는 트랜잭션을 사용하고있는 I / O 리소스의 양을 찾는 방법은 무엇입니까?

dba.stackexchange https://dba.stackexchange.com/questions/116878

문제

작업, 세션, 요청 또는 트랜잭션이 현재 사용중인 I / O 리소스의 양을 찾는 방법은 무엇입니까?

태스크에 의해 DMV는 DMV를 의미합니다. sys.dm_os_tasks . 세션별로 나는 DMV sys.dm_exec_sessions

를 의미합니다.

때로는 세션이 요청을 수행합니다. 요청에 따라 DMV sys.dm_exec_requests 또는 세션이 대신 트랜잭션이있을 수 있습니다. Sys. DM_TRAN_DATABASE_Transactions

I / O 사용량 과 함께 이러한 것들을 어떻게 연결할 수 있습니까?

나는 DMV sys.dm_os_tasks .

dmv sys.dm_os_tasks SQL Server에서 현재 실행중인 프로세스에 대한 자세한 내용을 찾으려면 흥미로운 열이 있습니다.

sys.dm_os_tasks - pending_io_byte_count를 표시하지 않음

그러나 각 작업 각각이 바이트 단위로 보류중인 I / O를 처리하는 방법을 식별하려고하면 항상 0입니다.

여기에 이미지 설명을 입력하십시오 >>

이것은 일부 CXPackets 대기를 모니터하려고하는 동안 내 쿼리 결과의 결과입니다.

pending_io_count는 괜찮은 것 같지만 pending_io_by_counts는 항상 0입니다.

대안이 될 수 있습니까? 각 병렬 프로세스의 I / O 사용을 측정하고 싶습니다.

실제로 각 세션이나 요청의 I / O 사용량 일 수 있습니다.

요청없이 세션조차도 다른 프로세스를 차단할 수 있기 때문에 때로는보아야 할 수 있습니다.

여기에 이미지 설명을 입력하십시오 >>

도움이 되었습니까?

해결책

쿼리의 실제 물리적 I / O를 찾고있는 경우 'ActualPhySicalReads'요소에 대해 XML ShowPlan을보아야합니다.

schemas.microsoft.com/sqlserver/2004/07/showplan <./ P>

그러나 이러한 물리적 읽기는 계획을 처음으로 캐시 할 때만 발생할 가능성이 있습니다.후속 실행은 디스크가 아닌 메모리에서 페이지를 가져올 가능성이 더 큽니다.

hth

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top