2

この記事によるとhttp://social.technet.microsoft.com/wiki/contents/articles/handling-transactions-in-sql-azure.aspx

SQL Azure default database wide setting is to enable read committed 
snapshot isolation (RCSI) 

私はそれを仮定するのは正しいですか:

A) 次のコードのデフォルトはシリアライズ可能です (データベースのデフォルトをオーバーライドします)

        using (TransactionScope transaction = new TransactionScope())
        {                                                               

        }

B) 次のコードでは、デフォルトでスナップショット分離を使用した ReadCommitted になっています (単純な ReadCommitted だけではありません)。

        TransactionOptions options = new TransactionOptions();
        options.Timeout = TimeSpan.FromMinutes(1);
        options.IsolationLevel = IsolationLevel.ReadCommitted;

        using (TransactionScope transaction = new 
          TransactionScope(TransactionScopeOption.Required, options))
        {                                                               

        }
4

2 に答える 2

3

a) はい。デフォルトでは、分離レベルはシリアライズ可能です。http://msdn.microsoft.com/en-us/library/ms172152(v=vs.90).aspx

b) そのトランザクションの分離レベルは ReadCommitted になります。スナップショットの場合、必要になります

  options.IsolationLevel = IsolationLevel.Snapshot;

http://msdn.microsoft.com/en-us/library/system.data.isolationlevel.aspx

于 2012-08-03T13:46:35.237 に答える
0

あなたの分離レベルは、2つの異なる分離である読み取りコミットされたスナップショットではなく、スナップショットのみになると思います

SNAPSHOT 分離レベルとは異なり、トランザクションの開始時に使用可能であった行の最後にコミットされたバージョンをリーダーに提供する代わりに、ステートメントの開始時に使用可能であった行の最後にコミットされたバージョンをリーダーが取得します。

于 2013-01-10T17:07:36.890 に答える