我在Server 2019中有一个查询,它对表的主键字段进行选择。这个表中有大约600万行数据。我想确切地知道我的查询速度降到了多少微秒(或者至少100微秒)。我的查询速度比毫秒快,但我在SQL server中所能找到的只是精确到毫秒的查询度量。
到目前为止我尝试过的是:
这只显示毫秒
从@Start=SYSDATETIME b中选择b.COL_NAME (),其中b.key = 0x1234选择@End=SYSDATETIME();选择DATEDIFF(微秒,@Start,@End)
这表明一点时间也没有过去。但是这并不准确,因为如果我添加WAITFOR DELAY '00:00:00.001',它应该添加一个可测量的毫秒延迟,它仍然显示为datediff的0。只有当我花了2毫秒才能看到它出现在datediff中
sys.dm_exec_query_stats表中获取total_worker_time。在这里我看到了600微秒,但是microsoft文档似乎表明这个数字是不可信的:。
total_worker_time ..。CPU总时间,以微秒为单位(但仅精确到毫秒)
我的想法已经用完了,需要一些帮助。有人知道我如何在微秒内准确地测量我的查询吗?延展的活动在这里有帮助吗?我还可以使用其他性能监控工具吗?谢谢。
发布于 2021-04-27 13:43:39
这太长了,不能发表评论。
通常,您不会寻找以微秒为单位的性能度量。基于数据库、服务器和网络中正在发生的其他事情,有太多的变化。
相反,您设置了一个循环,运行了数千次甚至数百万次的查询,然后对执行情况进行了平均处理。还有更多的细微差别,例如,如果希望确保查询使用冷缓存,则清除缓存。
https://stackoverflow.com/questions/67284225
复制相似问题