在Azure中的数据库中,我们遇到了很多死锁。我们尝试将TransactionScope类的隔离级别更改为read committed和seriazeble,但死锁图表一直表示隔离级别是读取提交的(2)。我们假设它一直使用读提交的快照隔离级别,这是SQL Azure中的默认级别。 我们需要设置一些其他设置让SQL Azure采用我们想要的隔离级别吗?
transactioncope代码:
Dim transOption As Transactions.TransactionOptions = New Transactions.TransactionOptions()
transOption.IsolationLevel = Transactions.IsolationLevel.ReadCommitted
Using scope As New Transactions.TransactionScope(Transactions.TransactionScopeOption.Required, transOption)
...
scope.Complete
End Using
我们还尝试将Required更改为RequiresNew作为事务范围选项,但没有成功。
答案 0 :(得分:0)
USE AdventureWorks2012;
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
更多信息: