次の方法で共有


トランザクションとコンカレンシー

適用対象: .NET Framework .NET .NET Standard

ADO.NET のダウンロード

トランザクションは、単一のコマンド、またはパッケージとして実行されるコマンドのグループで構成されます。 トランザクションを使用することで、複数の操作を 1 つの作業単位にまとめることができます。 トランザクションのあるポイントで障害が発生した場合は、トランザクションが開始される前の状態にすべての更新をロールバックできます。

データの一貫性を保証するために、トランザクションは ACID プロパティ (原始性、一貫性、分離性、および持続性) に準拠する必要があります。 Microsoft SQL Server など、ほとんどのリレーショナル データベース システムでは、クライアント アプリケーションが更新、挿入、または削除の操作を行うたびに、ロック、ログ、およびトランザクション管理の機能を提供し、トランザクションをサポートします。

Note

複数のリソースがかかわるトランザクションで、ロックがあまりにも長く保持されると、コンカレンシー数が少なくなる場合があります。 そのため、トランザクションはできるだけ短くします。

トランザクションに、同じデータベースまたはサーバーの複数のテーブルが含まれている場合、一般的にストアド プロシージャ内の明示的トランザクションの方がパフォーマンスが向上します。 SQL Server のストアド プロシージャにトランザクションを作成するには、Transact-SQL ステートメントの BEGIN TRANSACTIONCOMMIT TRANSACTION、および ROLLBACK TRANSACTION を使用します。 詳細については、SQL Server オンライン ブックを参照してください。

SQL Server と Oracle 間のトランザクションなど、種類の異なるリソース マネージャーがトランザクションに含まれる場合、分散トランザクションが必要になります。

このセクションの内容

ローカル トランザクション
データベースに対してトランザクションを実行する方法を示します。

分散トランザクション
ADO.NET で分散トランザクションを実行する方法について説明します。

SQL Server と System.Transactions の統合
分散トランザクションを使用するための、SQL Server での System.Transactions の統合について説明します。

オプティミスティック同時実行制御 オプティミスティックとペシミスティックの同時実行制御について説明し、コンカレンシー違反をテストする方法について説明します。

関連項目