我有一个存储过程当前执行复杂的提取,使用时经常超时.我部门提出的解决方案就是简单地增加超时时间长度;我真的不想这样做.我想重构这个sproc,但因为它太复杂而且没有文档(yay遗留
这是Microsoft SQL Server 2005存储过程.
我过去一直面对这种情况.最好的办法是创建一个简单的C#或VB .Net应用程序.当你重构sp时,给它一个新的名字.使用该应用程序调用旧的和新的sp.然后比较两个sp的输出,以确保它们以相同的顺序返回完全相同的值.您可能希望尽可能多地测试各种输入参数,以确保您的重构没有修改业务逻辑.
此外,使用NUnit可以帮助简化此任务.
当我开始当前职位时,我获得了一个必须针对新架构进行修改的数据库.它需要改变超过100 sp.使用我所描述的应用程序,我能够合理地确定我的一个修改没有违反业务规则.
你是对的,只是增加超时是错误的第一个答案.尽可能地改进sp,然后在必要时增加超时.