小编nic*_*key的帖子

存储过程首次加载需要 18 秒,后续加载需要 0 秒,等待几分钟使其再次变慢

我有一个存储过程,它为业务仪表板返回大量数据。第一次加载需要 18 秒,之后需要 0 秒,即使我随机更改输入参数,它也会保持在 0 秒并返回正确的结果。

如果我等了大约三分钟,它会回到 18 秒。这对用户来说是不可接受的,我已经用尽了我知道的每一个选项。

为什么在第一次加载时会很慢,但之后会很快?我知道它可能正在重新编译执行计划,因此在我添加的每个查询中都添加了 OPTION (KEEP PLAN);没有效果。我的存储过程没有'with recompile'。我下载了“datawizard sql profiler”并设置了一个跟踪以显示重新编译,但它没有显示任何内容,即使我在查询中使用了“with recompile”。

我唯一的其他想法是 mssql 正在执行某种结果缓存,但即使我更改参数,查询也运行得很快。

为什么我等了一会儿又需要 18 秒,然后是 0,然后又是 18 秒?

sql-server stored-procedures

4
推荐指数
1
解决办法
3357
查看次数

标签 统计

sql-server ×1

stored-procedures ×1