如题,因业务要求,需要追踪SQL Server在接收到一条SQL 语句请求的时候,它的响应时间是多少。
请大神们指点,灰常感谢。。。
------解决方案--------------------
改一下这个DMV试试
运行时间最长的查询
SELECT SUBSTRING(qt.text, ( qs.statement_start_offset / 2 ) + 1,
( ( CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset ) / 2 ) + 1) ,
qs.execution_count ,
qs.total_logical_reads ,
qs.last_logical_reads ,
qs.total_logical_writes ,
qs.last_logical_writes ,
qs.total_worker_time ,
qs.last_worker_time ,
qs.total_elapsed_time / 1000000 AS total_elapsed_time_in_S ,
qs.last_elapsed_time / 1000000 AS last_elapsed_time_in_S ,
qs.last_execution_time ,
qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.sql_handle) qp
ORDER BY qs.total_worker_time DESC --CPU时间
------解决方案--------------------
set statistics io on
set statistics time on
看结果
------解决方案--------------------
网络传输需要的时间这个倒不好估计。不过一般要说是SQL的问题,要来优化的话都不会考虑网络传输的,那个是SQL没办法解决的。