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