合計最大サイズが8kの境界を大幅に超える列が多数あるテーブルがあります。このテーブルには、基本的にそれがどのタイプのオブジェクトであるかを示すModuleID列が含まれています(心配しないでください-私はこれを設計していません)。そのうち15の異なる値が存在する可能性があります。そして、それは、IDENTITY(1,1)でもあり、SQLServerによってインクリメントされるpropertyIDと呼ばれる一意の列を持っています。ModuleIDにはクラスター化されたインデックスがあり、この値はselectで常に認識され、更新ではpropertyIDが使用されます(moduleIDがここでスコープ内にあることはめったにありません)。テーブルには数百万行が含まれています。
INSERTに関して、私の質問は次
のとおりです。a)一意でないクラスター化されたキーは、SQL ServerがKEY(行)ロックの代わりに排他的なページレベルのロックを保持する可能性を高めますか?
b)クラスター化されたキーをインクリメントされる一意のpropertyIDに変更すると、SQL Serverは代わりに排他的なKEYロックを保持できるようになり、これらは常にクラスター化されたインデックスの最後のページに移動しますか?
テーブルが(一部のインストールでは)moduleIDでパーティション化されているという事実は、あなたの答えを変えますか?