当前位置: 代码迷 >> Sql Server >> 怎么追踪SQL语句的响应时间
  详细解决方案

怎么追踪SQL语句的响应时间

热度:12   发布时间:2016-04-24 10:45:01.0
如何追踪SQL语句的响应时间
如题,因业务要求,需要追踪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没办法解决的。
  相关解决方案