gpt4 book ai didi

sql-server - 如何修复在缓存之前运行缓慢的查询

转载 作者:行者123 更新时间:2023-12-02 10:36:26 24 4
gpt4 key购买 nike

我有一些查询导致我们的实时环境超时。 (>30 秒)

如果我运行探查器并获取正在运行的确切 SQL 并从 Management Studio 运行它,那么它们第一次运行需要很长时间,然后每次运行都会下降到几百毫秒。

这显然是 SQL 缓存数据并将其全部放入内存中。

我确信可以对 SQL 进行优化,使其运行得更快。

我的问题是,当我第二次运行数据已经被缓存并且速度很快时,如何“修复”这些查询?

最佳答案

我建议您检查执行计划中是否存在导致性能不佳问题的查询。

您需要在执行计划中确定哪些步骤成本最高以及原因。例如,您的查询可能正在执行表扫描,或者使用了不适当的索引。

RedGate 网站上提供了一本非常详细的免费电子书,专门致力于了解执行计划的内容。

https://www.red-gate.com/Dynamic/Downloads/DownloadForm.aspx?download=ebook1

您可能会发现您希望将一个特定的执行计划用于您的查询。您可以使用查询提示强制 SQL Server 中的查询使用哪个执行计划。然而,这是一个相当先进的概念,应谨慎使用。有关更多详细信息,请参阅以下 Microsoft 白皮书。

http://www.microsoft.com/technet/prodtechnol/sql/2005/frcqupln.mspx

我也不建议您清除生产环境中的过程缓存,因为这将不利于平台上当前未遇到性能问题的所有其他查询的性能。

例如,如果您正在执行存储过程,则可以确保使用WITH RECOMPILE 命令为该过程的每次执行计算新的执行计划。

有关整体性能调整信息,Brent Ozar 的博客上有一些优秀的资源。

http://www.brentozar.com/sql-server-performance-tuning/

希望这有帮助。干杯。

关于sql-server - 如何修复在缓存之前运行缓慢的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com