SQL Server は、次のメカニズムを使用して同時実行を処理します。 ロック メカニズム: 共有ロック (S ロック)、排他的ロック (X ロック)、インテンション ロック トランザクションの原子性、一貫性、分離、耐久性 分離レベル: 読み取り、非コミット、読み取りコミット済み、反復可能な読み取り、シリアル化、およびその他の同時実行制御メカニズム: オプティミスティック同時実行制御、行バージョン管理
SQL Server 同時実行処理
SQL Server は、高い同時実行性をサポートするデータベース管理システムです。同時実行性とは、複数のユーザーが同じデータベースに同時にアクセスし、操作できることを指します。同時実行性を処理するために、SQL Server は次のメカニズムを使用します:
ロック メカニズム
-
共有ロック (S ロック):複数のユーザーが同じデータ行を同時に読み取ることはできますが、変更することはできません。
-
排他ロック (X ロック): 1 人のユーザーが同じ行のデータを排他的に書き込むことができ、他のユーザーは読み取りのみが可能になります。
-
インテンション ロック: トランザクションが行ロックを取得する準備をするとき、他のトランザクションとの競合を防ぐために、最初に行のインテンション ロックを取得します。
トランザクション
-
原子性: トランザクション内のすべての操作は完全に実行されるか、ロールバックされます。
-
一貫性 : トランザクションの完了後、データベースは一貫した状態になる必要があります。
-
分離: トランザクションは他の同時トランザクションの影響を受けません。
-
永続性 : トランザクションがコミットされると、その変更は永続的に保持されます。
#分離レベル
SQL Server は、トランザクションの同時実行性と一貫性を制御するためのさまざまな分離レベルを提供します。
- Read Uncommitted: 他のコミットされていないトランザクションからの変更を読み取ることができます。
- Read Committed: コミットされたトランザクションの変更のみを読み取ることができます。
- Repeatable Read: トランザクション内で同じデータを複数回読み取ると、同じ結果が得られることが保証されます。
- シリアル化: 同時実行は完全に禁止されており、すべてのトランザクションは順番に実行されます。
その他の同時実行制御メカニズム
- オプティミスティック同時実行制御: バージョン管理を使用して、複数のユーザーが同じ行を変更できるようにします同時に、送信時にデータの競合がチェックされます。
- 行のバージョン管理: さまざまなバージョンのデータを保存し、ユーザーがさまざまな時点でデータを表示できるようにします。
これらのメカニズムにより、SQL Server は高い同時実行性を実現し、データの一貫性と整合性を維持しながら、複数のユーザーが同時にデータベースにアクセスして操作できるようにします。
以上がSQLserver で同時実行性に対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。