動的ロック
行ロックなど、レベルの低いロックを使用すると、2 つのトランザクションが同時にデータの同じ部分に対するロックを要求する可能性が減って同時実行性が高まります。同時に、ロックの数も増えるので、ロックを管理するために多くのリソースが必要になります。テーブルまたはページに対する高レベルのロックはオーバーヘッドが減りますが、同時実行性は低下します。
Microsoft SQL Server データベース エンジン は、動的ロック ストラテジによって最もコストの低いロックを判断します。データベース エンジン はクエリを実行する際に、スキーマおよびクエリの特性に基づいて最適なロックを自動的に判断します。たとえば、インデックス スキャンの実行時に、インデックス内でのページレベルのロックが選択されます。これにより、ロックのオーバーヘッドを減少させることができます。
動的ロックには次の利点があります。
- データベースの管理が簡略化されます。データベース管理者がロック エスカレーションのしきい値を調整する必要はありません。
- パフォーマンスが高まります。データベース エンジン によりタスクに適したロックが使用されるので、システム オーバーヘッドが最小になります。
- アプリケーション開発者が開発に専念できます。ロックはデータベース エンジン により自動的に調整されます。