SQL Server 2005如何清除查询执行计划

时间:2009-08-17 15:59:37

标签: sql-server-2005

Hello其他程序员。我有一个SQL Server 2005查询,第一次需要很长时间才能处理。第一次运行后,查询工作得更快。它从一分钟到一秒钟。

我知道SQL Server正在缓存执行计划(这是正确的术语吗?)。我想要做的是清除这个执行计划,以便我可以更好地复制问题。我正在尝试调整查询。

有谁知道这是否可能以及如何做到这一点?

先谢谢

4 个答案:

答案 0 :(得分:16)

如果你想清除它,那么:

DBCC FreeProcCache
DBCC DropCleanbuffers

如果您只想每次强制执行查询重新编译,请在查询末尾添加查询提示:

OPTION (RECOMPILE)

答案 1 :(得分:3)

这就是我想要清除它时所运行的

DBCC freeproccache
DBCC dropcleanbuffers
go

如果我正在测试查询的性能,我通常只是将其粘贴在查询的顶部,以便每次运行时都使用清除缓存。

答案 2 :(得分:2)

警告:有时查询第二次运行得更快,因为服务器已经完成了磁盘IO并且仍然在RAM中有表。考虑在执行计划中查看IO成本。

答案 3 :(得分:1)

DBCC FREEPROCCACHE