フルテキスト:複数のフルテキストインデックスが作成された後、多数のFT_MASTER_MERGEがSUSPENDED状態で待機します(サーバーがハングします)


9

10個のデータベース、各データベースに100個の異なるスキーマ、各スキーマに10個の小さな(約50行)テーブル(合計で10K個のテーブル)があり、これらすべてにフルテキストインデックスを作成したときに、SQL Server 2014でテストを行いましたこれらすべてのデータベースのテーブルを同時に。

数分後に、SQL Serverが接続(ADMIN:.接続以外)を受け入れるために停止したことがわかりました。サーバーを再起動すると接続できますが、しばらくするとハングします。いくつかの調査の後、我々は、それがすべての作業スレッドを消費によって引き起こされることを見出し、dm_os_tasksおよびdm_os_waiting_tasksロットがあることを私たちに示したFT_MASTER_MERGEで待機SUSPENDED状態。「フルテキストはマスターマージ操作を待機しています」とグーグル検索しましたが、それに関する実際の情報は見つかりませんでした。

さまざまなフルテキストカタログ構成を試しました。DBごとに1つのカタログ、スキーマごとに1つのカタログ、インデックスごとに1つのカタログです。とにかく、サーバーはこれらすべての中断されたタスクでハングします。

待機の根本的な原因は何ですか?これをどのように修正/緩和できますか?

そして、そのような大量のテーブルでフルテキストを有効にするための推奨される方法は何ですか?

回答:


3

一度にすべてを行うのではなく、操作をずらす必要があります。接続アイテムは、新しい接続の受け入れについて話しません。しかし、このため、待機スレッドは解放されず(あなたの場合)、新しい接続はできません。

参照:

これはSQL Serverの既知の問題です。接続アイテムから:

これは、現在のジョブスケジューラの設定方法が原因で発生し、複数のマスターマージ操作がキューに入れられますが、通知されません。明確にするために、これは複数のインデックス作成/再編成操作が同時に呼び出された場合にのみ発生します-インデックス作成操作は正常に完了し、結果はクエリ可能です。タイムアウトし、後で再スケジュールされるのは、マスターマージのみです。

修正は複雑であるため、次のメジャーリリースまで待機して、トリアージすることにしました。現時点では、このようなタイムアウトの問題が発生しないように、インデックスの配置ずらすことをお勧めし ます。他にご不明な点がありましたらお知らせください。

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