2

パーティションビューを使用しており(SQL Server 2008標準、パーティションテーブルはオプションではありません)、パーティションの削除の目標を考慮すると、正常に機能します。パーティションビューでクエリを実行し、選択した列の句を指定すると、ディスクリミネーターを使用すると、実際の実行プランから、指定されたディスクリミネーター値に関連するテーブルのみがヒットしていることがわかります。ただし、INSERTステートメントまたはUPDATEステートメントが同時に存在する場合、それらのステートメントがディスクリミネーターによって選択されたテーブルにヒットしていなくても、ロックの問題が発生します。

ロックを分析すると、実行プランで正しい1つのテーブルのみが読み取られることが示されていても、パーティションビューのすべてのテーブルにISロックが設定されていることがわかります。もちろん、他の誰かがすでにXロックを設定している場合も同様です。パーティションビューで実行されているクエリ全体の1つは、Xが付いているテーブルがまったく読み取られていなくても、そのビューでロックされます。

これは一般的なパーティションビューの制限ですか、それともパーティションビューを使い続けるときにそれを回避する方法がありますか?SQL Server Books Onlineの推奨事項に従って、パーティションビューと関連するものを作成しました。

ありがとう

ハチ

4

1 に答える 1

2

これは仕様によるものです。X テーブル全体をロックしません。

于 2012-06-22T12:53:28.110 に答える