sys.fulltext_index_fragments (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
フルテキスト インデックスでは、 フル テキスト インデックス フラグメントと呼ばれる内部テーブルを使用して 逆インデックス データを格納します。 このビューを使用すると、これらのフラグメントに関するメタデータをクエリできます。 このビューは、フルテキスト インデックスが含まれているすべてのテーブルのフルテキスト インデックス フラグメントごとに 1 行のデータを格納しています。
列名 | データ型 | 説明 |
---|---|---|
table_id | int | フルテキスト インデックス フラグメントが含まれているテーブルのオブジェクト ID。 |
fragment_object_id | int | フラグメントに関連付けられている内部テーブルのオブジェクト ID。 |
fragment_id | int | フルテキスト インデックス フラグメントの論理 ID。 テーブルのすべてのフラグメントで一意です。 |
timestamp | timestamp | フラグメントの作成に関連付けられているタイムスタンプ。 より新しいフラグメントのタイムスタンプは、古いフラグメントのタイムスタンプよりも大きくなります。 |
data_size | int | フラグメントの論理サイズ (バイト単位)。 |
row_count | int | フラグメント内の個々の行の数。 |
status | int | フラグメントの状態。次のいずれかです。 0 = 新たに作成され、まだ使用されていません。 1 = フルテキスト インデックスの作成またはマージ中に挿入に使用される 4 = 閉じています。 クエリの準備完了 6 = マージ入力のために使用されています。クエリを実行できます。 8 = 削除対象としてマークされます。 クエリおよびマージ ソースには使用されません。 状態が 4 または 6 の場合は、フラグメントが論理フルテキスト インデックスの一部であり、クエリを実行できることを意味します。つまり、 クエリ可能な フラグメントです。 |
解説
sys.fulltext_index_fragments カタログ ビューを使用すると、フルテキスト インデックスを構成するフラグメントの数を照会できます。 フルテキスト クエリのパフォーマンスに問題がある場合は、次のように、sys.fulltext_index_fragments を使用してフルテキスト インデックス内のクエリ可能なフラグメント (状態が 4 または 6 のフラグメント) の数を照会します。
SELECT table_id, status FROM sys.fulltext_index_fragments
WHERE status=4 OR status=6;
クエリ可能なフラグメントが多数存在する場合は、フルテキスト インデックスを含むフルテキスト カタログを再構成して、フラグメントを結合することをお勧めします。 フルテキスト カタログを再構成するには、AdventureWorks2022
データベースの ftCatalog
という名前のフルテキスト カタログを再構成するには、次のように入力します。
USE AdventureWorks2022;
GO
ALTER FULLTEXT CATALOG ftCatalog REORGANIZE;
GO
アクセス許可
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。