sys.fulltext_index_fragments(Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric の SQL データベース

フルテキスト インデックスでは、 フル テキスト インデックス フラグメントと呼ばれる内部テーブルを使用して 逆インデックス データを格納します。 このビューを使用すると、これらのフラグメントに関するメタデータをクエリできます。 このビューは、フルテキスト インデックスが含まれているすべてのテーブルのフルテキスト インデックス フラグメントごとに 1 行のデータを格納しています。

列名 データ型 説明
table_id int フルテキスト インデックス フラグメントが含まれているテーブルのオブジェクト ID。
fragment_id int フルテキスト インデックス フラグメントの論理 ID。 テーブルのすべてのフラグメントで一意です。
fragment_object_id int フラグメントに関連付けられている内部テーブルのオブジェクト ID。
timestamp binary(8) フラグメントの作成に関連付けられているタイムスタンプ。 より新しいフラグメントのタイムスタンプは、古いフラグメントのタイムスタンプよりも大きくなります。
status int フラグメントの状態。次のいずれかです。

0 = 新たに作成され、まだ使用されていない

1 = 全文索引の集団またはマージ時に挿入に使用される場合

4 = 閉店。 クエリの準備完了

6 = マージ入力に使用されクエリ準備完了

8 = 削除指定。 クエリやマージソースには使われていません。

4または6の状態は、その断片が論理全文索引の一部であり、クエリが可能であることを意味します。 つまり、 クエリ可能な フラグメントです。
data_size bigint フラグメントの論理サイズ (バイト単位)。
row_count bigint フラグメント内の個々の行の数。

解説

sys.fulltext_index_fragmentsカタログビューは、全文索引を構成する断片の数を照会するために使用できます。 全文クエリの性能が遅い場合は、 sys.fulltext_index_fragments を使って全文インデックス内のクエリ可能な断片数(status4 または 6)を次のように照会できます。

SELECT table_id,
       status
FROM sys.fulltext_index_fragments
WHERE status = 4
      OR status = 6;

クエリ可能なフラグメントが多数存在する場合は、フルテキスト インデックスを含むフルテキスト カタログを再構成して、フラグメントを結合することをお勧めします。 全文カタログを再編成するにはALTER FULLTEXT CATALOGcatalog_nameREORGANIZEをご利用ください。 たとえば、ftCatalog データベースの AdventureWorks2025 という名前のフルテキスト カタログを再構成するには、次のように入力します。

USE AdventureWorks2025;
GO

ALTER FULLTEXT CATALOG ftCatalog REORGANIZE;
GO

アクセス許可

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