背景
フルテキスト検索を利用するシステムの移行において、移行したデータベースに対してフルテキストインデックスの再構築が必要になった。
GUIからの操作ではインデックス再構築の進捗が見えないため、進捗を確認するための方法が必要になった
そもそもフルテキスト検索とは何なのか
インデックスを設定した列の語句について、特定の言語でテキスト検索できる
LIKE句での検索と比べて高速、かつバイナリ列のドキュメントの中身をキーワード検索できる
参考:フルテキスト検索 - SQL Server | Microsoft Learn
手順
以下のSQLを実行する
[出力項目]
- インデックス項目:フルテキストカタログに含まれるテーブルのキーなどの項目数を出力する
- ステータス:インデックスカタログのステータス(0:アイドル状態 1:カタログ作成中)
[終了条件]
- インデックス項目数が作成対象の項目数と一致している
- ステータスが0になっている
進捗確認.sql
SELECT fulltextcatalogproperty('フルテキストカタログ名', 'ItemCount') as 'インデックス項目数';
SELECT fulltextcatalogproperty('フルテキストカタログ名','PopulateStatus') as 'ステータス' -- 0:作成完了、1:作成中
実行結果