TSQL:如何在Cursor中提高具有递归SP调用的SP的性能(HINTS会有用吗?)

时间:2015-11-17 04:40:57

标签: sql-server tsql stored-procedures

我在优化SP时遇到问题,需要你的建议。

实际上,我正在研究遗留系统,其中SP是提交订单并且正在使用Cursor并且在Cursor内部并且正在调用另一个SP。我们知道游标不是一个好选择,所以我想用基于集合的方法重写Master SP。但在这个过程中,我发现内部SP再次调用其他三个SP。在这种情况下,似乎Cursor是不可避免的。

我们也尝试使用" With Recompile"提示但仍然没有得到满意的结果。实际上处理200条记录SP需要15分钟,因此我们正在尝试对其进行优化。

我还注意到,当我试图通过运行带有50条记录的SP来提取实际执行计划时,计划没有生成,并且SSMS在运行20-25分钟后崩溃。

我的大多数查询都是UPDATE和INSERT语句,并且在思考TABLE HINTS是否有帮助,但我之前从未使用过它。

请您建议任何替代方法,如HINTS,我们可以用它来优化我们的SP。

请在下面找到我的SP的蓝图,以便更清晰。在此先感谢:)

Master_SP
BEGIN 

EXEC Inner_SP_Level1

END

Inner_SP_Level1
BEGIN 

EXEC Inner_SP_Level21
EXEC Inner_SP_Level22
EXEC Inner_SP_Level23

END

Inner_SP_Level22
BEGIN 

EXEC Inner_SP_Level221
EXEC Inner_SP_Level222

END

0 个答案:

没有答案