none
如何将Profiler抓到的CPU,逻辑读,Duration与DMV dm_exec_query_stats的total_elapsed_time, total_worker_time 和total_logical_reads 值进行关联呢? RRS feed

  • 问题

  • 我们知道,我们可以从Profiler获取一个脚本执行的CPU,逻辑读和时间成本,也可以从dm_exec_query_stats这个dmv中获取到对应的total_elapsed_time, total_worker_time 以及total_logical_reads 的值。

    但是发现他们的值差异很大。

    那么他们之间是如何转化的呢? 比如我大概知道在Profiler中设置一个怎么样的值作为一个阈值,超过这个值的,我可以识别为可能有性能问题的。

    但是在DMV中的值就不太明确了。

    2019年8月30日 2:06

全部回复

  • Hi Wison.W.He.

     

    建议你使用set statistics profile on; set statistics io on; set statistics time on 这些的统计信息是准确的,sys.dm_exec_query_stats的结果可能会因每次执行而有所不同,因为数据仅反映已完成的查询,而不是仍在进行中的查询。

     

    Best regards,

    Dedmon Dai


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    2019年9月2日 6:27
  • Hi Wison.W.He.

     

    建议你使用set statistics profile on; set statistics io on; set statistics time on 这些的统计信息是准确的,sys.dm_exec_query_stats的结果可能会因每次执行而有所不同,因为数据仅反映已完成的查询,而不是仍在进行中的查询。

     

    Best regards,

    Dedmon Dai


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

        我现在的问题是,我的查询只执行了一次。而且execution_time也是显示只有1.但是这个时候看到的执行成本就是和Profiler中抓取到的不一样
    2019年9月3日 23:55
  • 因为执行一个SQL语句,它还要干一些别的事情,比如返回相关的元数据信息等,所以Profiler里面的总是会高一些的。

    但是对于有性能问题的语句,执行时间,逻辑读这些值本来就很大了,所以差别应该就不太大了。


    想不想时已是想,不如不想都不想。

    2019年9月11日 2:40
    版主