2015-02-06 2 views
0

넓은 범위의 변수 옵션을 통해 일부 고급 쿼리의 자동 SQL 프로파일 링을하고 싶습니다. 내가 뭘 바라고하는 것은 다음과 같은변수에서 SQL 통계 시간 캡처

set statistics io on 
set statistics time on 

select * 
from MyTable 

set statistics time off 
set statistics io off 

--Somehow return the statistics for this query back to the calling C# code 
-- so that I can log it for displaying in a report among other queries 

유사한 내가 어떻게 쿼리가 원하는 실행 시간을 추출하는 내 실행 된 쿼리에 대한 처리 찾기 위해 나는 확신 해요 그러나 다음을 사용하여 시도입니다

select * from sys.dm_exec_query_stats 

정말 내 질문에는 2 가지 해결책이 있습니다. 1) statistcs return 메시지를 간단하게 포착 할 수 있습니까? 2) 또는 dm_exec_query_stats 테이블을 쿼리 할 수 ​​있도록 SQL 쿼리 핸들을 찾을 수 있습니까?

나는 또한 다음을 수행하는 것을 고려해야한다고 언급해야하지만 좀 더 완벽한 솔루션을 원합니다.

declare @StartTime datetime = getdate(); 
Select * from myTable; 
declare @Dur datetime = getdate() - @StartTime; 

답변

1

물론 스택 오버 플로우로 전환하는 순간 나는 스스로 알아낼 수 있습니다!

미래에 다른 사람이 찾고있는 경우 ... where 절에 run 쿼리를 입력하면 모든 성능 메트릭이 반환됩니다. 시간은 밀리 초가 아닌 마이크로 초입니다.

SELECT * 
FROM sys.dm_exec_query_stats AS qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st 
where st.text = 'Your Query Here'