请向我解释以下观察:
我有从SSMS运行的以下一段T-SQL代码:
BEGIN TRAN SELECT COUNT (*) FROM m WHERE m.[x] = 123456 or m.[y] IN (SELECT fx FROM f) SELECT COUNT (*) FROM m WHERE m.[x] = 123456 or m.[y] IN (SELECT fx FROM f) COMMIT TRAN
查询需要大约二十秒钟才能运行。 我没有其他用户查询在服务器上运行。
在这种情况下,我期望性能计数器“MSSQL $ SQLInstanceName:交易\最长交易运行时间”不断上升到20,然后迅速下降。 相反,它会在两秒钟内上升到12左右,然后在查询期间再次下降到12到14之间。
根据MS文档,计数器测量“自交易开始以来的时间长度(以秒为单位),该交易的活跃时间比任何其他当前交易的时间长。 但显然,它不是。 是什么赋予了?
检查正在运行的DMV,并查看CPU时间为查询报告的内容。 我会认为这匹配。