sys.fulltext_index_fragments (Transact-SQL)

フルテキスト インデックスでは、フルテキスト インデックス フラグメントと呼ばれる内部テーブルを使用して逆インデックスのデータが保存されます。このビューを使用すると、これらのフラグメントに関するメタデータを照会できます。このビューは、フルテキスト インデックスが含まれているすべてのテーブルのフルテキスト インデックス フラグメントごとに 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 を使用します。たとえば、AdventureWorks データベース内の ftCatalog という名前のフルテキスト カタログを再構成するには、次のように入力します。

USE AdventureWorks;
GO
ALTER FULLTEXT CATALOG ftCatalog REORGANIZE;
GO

権限

SQL Server 2005 以降のバージョンでは、カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。詳細については、「メタデータ表示の構成」を参照してください。