답변:
이것을 확인하는 가장 좋아하는 방법은 Adam Machanic의 뛰어난 sp_WhoIsActive 저장 프로 시저를 사용하는 것입니다. 사용 방법 및 코드 다운로드 링크에 대한 비디오는 다음과 같습니다.
http://www.brentozar.com/archive/2010/09/sql-server-dba-scripts-how-to-find-slow-sql-server-queries/
문제는 결과를 확인하기 위해 주기적으로 실행해야한다는 것입니다. 이 데이터를 주기적으로 수집하려면 sp_WhoIsActive 결과를 테이블에 캡처하는 방법에 대한 Kendra Little의 자습서를 확인하십시오.
http://www.littlekendra.com/2011/02/01/whoisactive/
마지막으로 쿼리가 async_network_io를 기다릴 때마다 실행해야 할 경우 확장 이벤트라는 새로운 도구를 사용할 수 있습니다. SQL Server 엔진 내부의 디버그 지점과 마찬가지로 마술을 일으킬 수 있습니다. 솔직히, 2008 년에 지금 사용하는 것은 약간 고통 스럽습니다.
'async_wait_io'는 대기 유형이 아닙니다. 가능한 ASYNC % 대기 유형은 다음과 같습니다.
대기 유형에 대한 몇 가지 좋은 링크 :
현재 대기를 찾기위한 쿼리로 이동합니다.
SELECT req.session_id
,blocking_session_id
,ses.host_name
,DB_NAME(req.database_id) AS DB_NAME
,ses.login_name
,req.status
,req.command
,req.start_time
,req.cpu_time
,req.total_elapsed_time / 1000.0 AS total_elapsed_time
,req.command
,req.wait_type
,sqltext.text
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
JOIN sys.dm_exec_sessions ses
ON ses.session_id = req.session_id
WHERE req.wait_type IS NOT NULL
--WHERE req.wait_type = '?'