【发布时间】:2013-11-16 16:58:16
【问题描述】:
我需要在约 1-2 秒内运行多个查询。我一直在努力优化它们,但是第一次调用它们需要大约 20 秒,而所有后续调用需要大约 1 秒。这使得无法判断我所做的任何更改是否正在加快查询速度,因为它总是在大约 1 秒后运行。我对 SQL 并不是非常熟悉,但从我所学到的东西来看,似乎有些东西正在缓存。我试图弄清楚如何防止这种情况,但似乎没有任何效果。根据我在 Google 上的发现,人们一直在建议
DBCC FREEPROCCACHE
或
OPTION(recompile)
这些似乎都不起作用。每个查询在第一次耗时约 20 秒时仍在约 1 秒内运行。我只是想确保我所做的更改正在导致改进,而不是改进来自缓存。有没有其他技巧可以做到这一点?
【问题讨论】:
-
那么,您希望每次运行查询需要大约 20 秒吗?为什么?
-
是的,我只想要一致的结果,所以当我做一个小改动时,我会确保它不是因为缓存。
-
您是想在初始运行时阻止 ~20 运行时间,还是减慢其他查询的速度?
-
他想减慢其他查询以进行性能测试。我有同样的问题:当缓存改变查询运行时,很难知道您的更改是否有助于提高性能。
标签: sql sql-server