我们有一个程序,每半小时解析几个文件,并在MS SQL Server数据库中插入或更新数据。问题在于,程序似乎一次提交了许多操作。过去,这不是问题,但最近解析的文件大小显着增加,现在每半小时数据库就会在 5 分钟左右的时间里无响应,我们无法在程序完成提交任何更改时执行简单的 select 语句。
我们无法更改程序,那么如何在程序完成提交更改时使数据库检索旧行,而不是像当前那样超时?
您可以将数据库的隔离级别更改为使用已提交的已写入的读取快照隔离。 https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server
阅读本文,以充分了解将 RCSI 切换到打开的含义。它可能会导致性能下降,并可能给您带来不需要的结果,因此请测试!:https://www.brentozar.com/archive/2013/01/implementing-snapshot-or-read-committed-snapshot-isolation-in-sql-server-a-guide/