トランザクションと同時実行 (ADO.NET)
トランザクションは、単一のコマンド、またはパッケージとして実行されるコマンドのグループで構成されます。 トランザクションを使用することで、複数の操作を 1 つの作業単位にまとめることができます。 トランザクションのあるポイントで障害が発生した場合は、トランザクションが開始される前の状態にすべての更新をロールバックできます。
データの一貫性を保証するために、トランザクションは ACID プロパティ (原始性、一貫性、分離性、および持続性) に準拠する必要があります。 Microsoft SQL Server など、ほとんどのリレーショナル データベース システムでは、クライアント アプリケーションが更新、挿入、または削除の操作を行うたびに、ロック、ログ、およびトランザクション管理の機能を提供し、トランザクションをサポートします。
![]() |
---|
複数のリソースがかかわるトランザクションで、ロックがあまりにも長く保持されると、同時実行数が少なくなる場合があります。そのため、トランザクションはできるだけ短くします。 |
トランザクションに、同じデータベースまたはサーバーの複数のテーブルが含まれている場合、一般的にストアド プロシージャ内の明示的トランザクションの方がパフォーマンスが向上します。 SQL Server のストアド プロシージャにトランザクションを作成するには、Transact-SQL ステートメントの BEGIN TRANSACTION、COMMIT TRANSACTION、および ROLLBACK TRANSACTION を使用します。 詳細については、SQL Server オンライン ブックを参照してください。
SQL Server と Oracle 間のトランザクションなど、種類の異なるリソース マネージャーがトランザクションに含まれる場合、分散トランザクションが必要になります。
このセクションの内容
ローカル トランザクション (ADO.NET)
データベースに対してトランザクションを実行する方法を示します。分散トランザクション (ADO.NET)
ADO.NET で分散トランザクションを実行する方法について説明します。SQL Server と System.Transactions の統合 (ADO.NET)
分散トランザクションを使用するための、SQL Server 2005 の System.Transactions 統合について説明します。オプティミスティック同時実行制御 (ADO.NET)
オプティミスティック同時実行制御とペシミスティック同時実行制御について、および同時実行違反をテストする方法について説明します。