请教一个优化的思路问题
有过程:
usp_main
usp_a
usp_a1
usp_a2
usp_b
usp_b1
usp_c
...
这些过程是对一系列数据的处理,从导入TXT,然后整理数据。。。
由usp_main开始,然后逐个调用,sp中都未写事务
现在想优化一下整体性能,从加事务方面(先不谈其他方面)
那么问题在于,begin tran怎么加好?有什么讲究?
是只要加外面就好:
begin tran
usp_main
commit tran
还是修改每个过程:
alter proc usp_main
as
begin tran
....
commit tran
[解决办法]
如果之间没有什么特别的关联,比如说必须全部成功或者全部失败,并且持续时间长,可以分开多个事务,否则,一个事务也可以
[解决办法]
这样加比较好:
begin tran
usp_main
commit tran
[解决办法]
除了性能,最重要的是数据一致性,
[解决办法]
可以用这种方式来,加强错误处理:
begin try
begin tran
exec proc_t 1
--select '执行成功'
commit tran
end try
begin catch
--select '执行失败'
if @@trancount >0
rollback
end catch