本当に忙しいテーブルにインデックスを作成する


11

insert\select毎回たくさんのテーブルがあります(毎秒100台のマシンが挿入/更新しているような)。

1秒でもロックできないテーブルにインデックスを作成する最良の方法は何ですか?

インデックスを作成すると、リクエストがロックされて、実行できなくなります。

100万行以上の大きなテーブルです。

回答:


12

などのオプションはありませんCREATE INDEX WITH (NOLOCK)NOLOCKクエリでもロックがかかるため、ヒントがない場合よりも少なくなります)。

あなたがやろうとしているのはWITH (ONLINE = ON)、操作の最初と最後にまだロックをかけることです(両方とも、テーブルに関連するプランの再コンパイルに関連します-詳細については、Paul Randalによるこのブログ投稿を参照してください)。

これにより、アプリケーションでのインデックス作成の影響が大幅に軽減されますが、その影響を完全に排除する実用的な方法はありません。また、この機能は無料ではありません。EnterpriseEditionが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.