尝试捕获 - 资源强度?

时间:2013-01-15 13:25:14

标签: sql sql-server sql-server-2008

我已经读过在SQL Server存储过程中使用Try Catch块可以节省大量的服务器资源。我的问题是它使用了多少资源?

当我的sproc进行大量数据更改时,我目前正在使用Try Catch块和事务处理,这对于防止错误数据进入数据库以及记录错误非常有用,但我想使用在我的所有程序中编程的方法。

它有多大区别?

1 个答案:

答案 0 :(得分:6)

零。使用TRY / CATCH的代码使用与不使用TRY / CATCH的代码完全相同的资源,唯一的区别是前者通常比后者更正确。实际上,由于代码流直接跳转到catch块并且避免在请求/存储过程中运行其余语句只是为了回滚,因此TRY / CATCH代码在出现错误时更多有效。结束。

仅仅是为了记录,我不买一秒钟,在每个语句甚至远程之后编写检查@@ ERROR的代码是一个可行的选择。

  

我在大学读书时读过这本书

确保读数没有引用带有TRY / CATCH的T-SQL代码,而是引用C ++代码有或没有异常(JVM或IL)。回到黑暗时代,关于添加异常处理代码是否具有性能影响(是的,它有)以及我们是否应该将此视为一个因素存在争议(不,我们不应该,具有异常处理的代码早已赢得了由于正确性而产生的战斗。但是这个讨论对你的观点来说完全没用:运行你的T-SQL的后端引擎是用异常处理编译的,你无能为力。同样,这会对您的T-SQL代码产生影响。