我在SQL Server 2005中有两个存储过程(sp1
和sp2
),它们具有相同的sql脚本(除了名称之外根本没有差异)。
当我尝试执行sp1
时,它会返回超过3000行,结果为0-1秒。
但是当我运行sp2
时,它将在10秒内返回这3000行。
想知道是否有任何工具/命令/任何可以设置特定存储过程以进行优化的工具?
感谢。
答案 0 :(得分:0)
SQL Server保存了如何执行代码的“计划”。
如果针对一小部分数据运行存储过程,则它将针对小型数据集进行优化。对于大型数据集则相反。
2008年有一个很好的OPTIMIZE FOR
功能,但在2005年,你被WITH RECOMPILE
困住了。这意味着它将在每次运行时重新编译,在某些情况下是最佳的!