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 を使用します。たとえば、AdventureWorks2008R2 データベース内の ftCatalog という名前のフルテキスト カタログを再構成するには、次のように入力します。
USE AdventureWorks2008R2;
GO
ALTER FULLTEXT CATALOG ftCatalog REORGANIZE;
GO
権限
SQL Server 2005 以降のバージョンでは、カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。詳細については、「メタデータ表示の構成」を参照してください。