gpt4 book ai didi

sql - SP 需要 15 分钟,但执行相同的查询会在 1-2 分钟内返回结果

转载 作者:行者123 更新时间:2023-12-01 19:57:49 24 4
gpt4 key购买 nike

所以基本上我有这个相对较长的存储过程。基本执行流程是,它将一些数据SELECTS INTO放入使用#符号声明的临时表中,然后在这些表中运行游标以生成“运行总计”到第三个临时表是使用 CREATE 创建的。然后,生成的临时表与数据库中的其他表连接,经过一些分组等后生成结果。问题是,这个 SP 一直运行良好,直到现在才在 1-2 分钟内返回结果。现在,突然之间,需要 12 到 15 分钟。如果我从 SP 中提取查询并通过手动设置相同的参数在 Management Studio 中执行它,它将在 1-2 分钟内返回结果,但 SP 需要很长时间。知道会发生什么吗?我尝试生成查询和 SP 的实际执行计划,但由于游标而无法生成。知道为什么 SP 需要这么长时间而查询却不需要吗?

最佳答案

这是参数嗅探的足迹。请参阅此处有关它的另一个讨论; SQL poor stored procedure execution plan performance - parameter sniffing

有几种可能的修复方法,包括将WITH RECOMPILE 添加到您的存储过程中,该过程大约可以工作一半的时间。

对于大多数情况(尽管这取决于查询和存储过程的结构),建议的修复方法是不要直接在查询中使用参数,而是将它们存储到局部变量中,然后使用查询中的这些变量。

关于sql - SP 需要 15 分钟,但执行相同的查询会在 1-2 分钟内返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265259/

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