0

大量のメッセージを解析/ロードし、それらを SQL Server 2008 R2 インスタンスにロードするアプリケーションがあります。TVP を使用してコレクションを渡し、大きなスループットを実現していますが、かなりの数のデッドロックが発生しています。最近、問題が発生していた領域に PAGLOCK ヒントを追加したところ、問題の大部分が解決されました。

私の懸念は、これが大量の断片化を引き起こすことでしょうか? あれは正しいですか?また、いくつかの再設計オプションに取り組んでいますが、PAGLOCK ヒントを使用した場合の影響について少し理解を深めたいと考えていました。

提案やコメントをいただければ幸いです。

ありがとう、

S

4

2 に答える 2

3

PAGLOCKヒントは断片化とは何の関係もありません。フラグメンテーションは、テーブルのインデックスに関連しています。重い挿入があるテーブルに適切なインデックスがないようです。

PAGLOCK並行性に関連するテーブルヒントです。SQL ServerBooksOnlineを参照してください。

于 2012-12-31T22:29:46.363 に答える
3

PAGLOCK は断片化には影響しません。新しい行の挿入によってページ分割が発生すると、断片化が発生します。これは、新しい行が正しいページに収まらず、使用されているロックの種類とは無関係であるためです。ページ分割は、クラスター化されたインデックス キーが ID のように増加する値でない場合によく発生します。より多くの行がページに収まる傾向があるため、頻度は低くなりますが、同じ理由で非クラスター化インデックスでも発生します。

つまり、複数のインデックスがあり、挿入頻度が高いテーブルでは断片化を避けることができないということです。したがって、実際の断片化に基づいて、インデックスを頻繁に再編成/再構築する必要があります。

于 2013-01-01T06:17:50.797 に答える