1

MSDTCの設定には一定の問題があり、現在は に置き換えるSystemTransactionsことを検討していSqlTransactionsます。

上記の違いと、それによって発生する可能性のある問題に興味があります。

4

2 に答える 2

1

Massimilianoによって引用および参照された記事は、参照された時点で7年前のものであるため、.NET2.0とSQLServer 2000および2005のみを参照しています。ただし、重要なポイントは、それ以降のバージョンでも有効であると思います。それ以降のバージョンでの変更について、直接適用できる解説を見つけるのに苦労しています。

SQL Server 2008以降では、単一のデータベースに対するSystem.TransactionScopeトランザクションは、古いバージョンよりもDTCにプロモートされる可能性が低いようです。

関連:SqlClient、System.Transactions、SQL Server 2008、およびMARS

したがって、SQL Serverのバージョンによっては、単一のデータベースに対してSystem.Transactionsを使用するDTCで多かれ少なかれ問題が発生します。

System.TransactionsのコードはSqlTransactionsのコードよりも軽量ですが、処理のオーバーヘッドが高く、明示的な制御が少なくなります。

于 2013-01-10T17:17:08.063 に答える
0

System.Transactions の代替品ではありませんSqlTransaction

ただし、単一のデータベースを考慮する限り、ADO.NET 2.0 System.Transactions ベースのトランザクションと通常の SqlTransaction の最大の違いは「分離レベル」です。しかし、それは大きな違いです。すぐに分離レベルについて説明しますが、その前に、Sql 2k では、単一のデータベースが関係している場合でも、トランザクションは MSDTC によって管理されることを認識しておく必要があります。Sql2k5 の場合、別のデータベースに接続された 2 番目の SqlConnection が現れるまで、トランザクションは LTM によって管理されます。それが発生すると、トランザクションは LTM から MSDTC にバンプアップされます。

http://dotnetslackers.com/SQL/re-3463_SqlTransaction_vs_System_Transactions.aspx

于 2012-08-28T10:28:33.343 に答える