5

sql server profiler 跟踪中的持续时间值显示的查询值比我运行相同查询并查看查询的执行持续时间时更大。为什么会这样,或者我错过了什么?

4

2 回答 2

1

多大?您知道在探查器中,持续时间以微秒为单位存储,对吗?所以 1000000 意味着 1 秒。

除此之外,您还需要考虑其他事项,例如执行计划的重用,甚至 SSMS 是一个 UI 工具,并且在将查询发送到数据库之前可能会对您的查询执行其他操作,并且分析器直接从在数据库上执行,这可以解释几秒钟的执行

于 2012-04-27T09:48:29.597 回答
1

版本是动态生成的 SP 的分析部分吗?

例如

..
@sql = 'select * from ' + @tablename
exec (@sql)

大多数 SP 在第一次执行后就进行了预编译,但带有非静态代码(如上面的代码片段)的 SP 永远不会被预编译。但是如果在查询窗口中你正在运行

select * from the_table_name

这可能会显示您所看到的差异。有点猜测,虽然我很害怕。也许你可以告诉我们更多关于查询是如何运行的,如果它是 SP 的一部分等等。

于 2012-04-27T10:28:50.530 回答