代码之家  ›  专栏  ›  技术社区  ›  codingguy3000

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

  •  8
  • codingguy3000  · 技术社区  · 16 年前

    你好,各位程序员。我有一个SQL Server 2005查询,第一次处理它需要很长时间。在第一次运行之后,查询的工作速度要快得多。从一分钟到一秒钟。

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

    有人知道这是否可行以及如何做到吗?

    提前谢谢

    4 回复  |  直到 13 年前
        1
  •  16
  •   Andrew    16 年前

    如果要清除它,请执行以下操作:

    DBCC FreeProcCache
    DBCC DropCleanbuffers
    

    如果只想每次强制重新编译查询,则在查询末尾添加一个查询提示:

    OPTION (RECOMPILE)
    
        2
  •  3
  •   Gavin    16 年前

    当我想清除它们的时候,这就是我跑步的方式

    DBCC freeproccache
    DBCC dropcleanbuffers
    go
    

    如果我在测试一个查询的性能,我通常只是把它粘贴在查询的顶部,这样每次它运行时都有一个清晰的缓存。

        3
  •  2
  •   quillbreaker    13 年前

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

        4
  •  1
  •   Darryl Peterson    16 年前

    DBCC自由程序缓存

    推荐文章