我有一个巨大且令人讨厌的存储过程,几个月前它还不慢,但现在却变得很慢。我几乎不知道这个东西在做什么,也不想重写它。
我知道如果我拿出存储过程的主体,然后声明/设置参数的值,并在查询分析器中运行它,它会比原来快20倍以上。
从互联网上看,这可能是由于缓存的查询计划不好所致。因此,我尝试在EXEC之后使用“WITH RECOMPILE”运行sp,也尝试将“WITH RECOMPILE”放入sp中,但都没有帮助。
当我查看sp和查询的执行计划时,最大的区别在于sp有“Parallelism”操作,而查询没有任何操作。这可能是速度差异的原因吗?
谢谢,任何想法都可以,我被卡住了。
我知道如果我拿出存储过程的主体,然后声明/设置参数的值,并在查询分析器中运行它,它会比原来快20倍以上。
从互联网上看,这可能是由于缓存的查询计划不好所致。因此,我尝试在EXEC之后使用“WITH RECOMPILE”运行sp,也尝试将“WITH RECOMPILE”放入sp中,但都没有帮助。
当我查看sp和查询的执行计划时,最大的区别在于sp有“Parallelism”操作,而查询没有任何操作。这可能是速度差异的原因吗?
谢谢,任何想法都可以,我被卡住了。