我从2008年到今天已经走过了程序员生涯的5个春夏秋冬,酸甜苦辣百种滋味我相信只有走过这段路的程序才最有体会,不说废话了,就我知道的几种调试包含复杂业务的存储过程的方法列举如下:(备注:调试的方法源自一位老大【雪上加霜】,方法供大家学习指正) 本人使用
我从2008年到今天已经走过了程序员生涯的5个春夏秋冬,酸甜苦辣百种滋味我相信只有走过这段路的程序才最有体会,不说废话了,就我知道的几种调试包含复杂业务的存储过程的方法列举如下:(备注:调试的方法源自一位老大【雪上加霜】,方法供大家学习指正)
本人使用的变成工具是Delphi 2010+SQL2008
背景介绍:
本人调试一个500行的存储过程,美国服务器,调试的原因是程序中调用存储过程,获得时间很长导致Delphi 的前台报出ERROR"超时已过期",最终找到存储过程执行效率低下,利用脚本重新建立各表的索引后仍然无效后,开始了漫长的查询效率低下原因查找中
方法一:存储构成中包含复杂的业务时无法重复执行,在查询分析器中增加事物回滚 begin tran exec usp_xx_xxxxxxx rollback tran
方法二:在存储过程中某一段后增加select 1 return或者 select "T" return 查询存储过程中的某一段是否效率低下
方法三: 当遇到存储过程中存在,存储过程调用存储过程时可注释掉对应的存储过程,看存储的查询效率
方法四: 当遇到存储过程中遇到使用游标的可采用在游标的后面加上where 1=2 过滤该游标,看是否提高了查询效率
当最终查询到某一条SQL语句查询效率低下后,根据实际情况处理,免备案空间,建立表索引或者优化SQL语句或者日表倒年表,网站空间,或者采用其他的方式