sys.fulltext_index_fragments (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure 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;  

クエリ可能なフラグメントが多数存在する場合は、フルテキスト インデックスを含むフルテキスト カタログを再構成して、フラグメントを結合することをお勧めします。 フルテキスト カタログを再構成するには、ALTER FULLTEXT CATALOGcatalog_name REORGANIZE を使用します。 たとえば、データベースに名前が付けられた ftCatalog フルテキスト カタログを再構成するには、次のように AdventureWorks2022 入力します。

USE AdventureWorks2022;  
GO  
ALTER FULLTEXT CATALOG ftCatalog REORGANIZE;  
GO  

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されたセキュリティ保護可能なリソースに限定されます。

参照

オブジェクト カタログ ビュー (Transact-SQL)
フルテキスト インデックスの作成