【发布时间】:2013-09-05 02:54:08
【问题描述】:
我正在维护一个 ASP/C# 程序,该程序使用 MS SQL Server 2008 R2 来满足其数据库要求。
在正常和完美的日子里,一切正常。但我们并不生活在一个完美的世界中。
申请(请假、病假、加班、加班等)审批流程最多需要十个独立的数据库连接。该程序连接到数据库,传递一些相关参数,并使用存储过程来完成这项工作。十次。
现在,由于整个事物的结构,我无法更改,连接中的下降,或者见鬼,如果我在 VS2005 中放置一个调试点并让它挂在那里足够长的时间,应用程序批准流程就会进行不完整。这些表通常只是连接在一起,因此数据不匹配(此处缺少数据,此处无法更新主键)意味着整行将无用。
现在,我知道我无法阻止这种情况发生 - 毕竟这是一个连接问题。
但是有没有办法最大限度地减少连接延迟/失败?或者是一种通知用户流程出现问题的方法?回滚更改功能(通过程序或 SQL),以便撤消数据库中任何不完整的数据?
谢谢。
【问题讨论】:
-
又是什么问题?
-
配置文件/优化(执行计划、跟踪和调优顾问是基本的,但可以有很长的路要走)以提高性能。目前尚不清楚您是否正在使用事务,但如果您没有使用,它们是确保流程不会失败和留下工件的高效方法。
-
@O.O,如果不清楚,抱歉。更新了问题。
-
@TimMedora,程序只是连接数据库,传递一些参数,然后执行存储过程。可能不使用事务 - 实际上直到现在才听说过。
-
一定要查看事务,使用
System.Transactions.TransactionScope或在您的存储过程中。事务是一种“全有或全无”的机制,即它们确保整个操作成功或回滚。 SQL Server 为您完成所有工作。
标签: c# asp.net sql-server visual-studio-2005