捕获变量中的SQL统计时间

捕获变量中的SQL统计时间

问题描述:

我想通过大量的变量选项来进行一些高级查询的自动化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)简单地捕获统计信息返回信息是否可行? 2)或者是否有可能找出我的sql查询句柄,以便我可以查询dm_exec_query_stats表?

我还应该提到我已经考虑过要做以下事情,但我希望能有一个更完整的解决方案。

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

当然,只要我转向使用*,我就会知道自己!

如果有人在将来也在寻找这个......这是一个解决方案,您只需在where子句中输入您的ran查询并返回所有性能指标。请记住,时间以毫秒为单位,不是毫秒

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'