FULLTEXTCATALOGPROPERTY (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
SQL Server のフルテキスト カタログ プロパティについての情報を返します。
構文
FULLTEXTCATALOGPROPERTY ('catalog_name' ,'property')
引数
Note
LogSize プロパティと PopulateStatus プロパティは、SQL Server の将来のリリースでは削除される予定です。 新しい開発作業では、これらのプロパティの使用は避け、現在これらのプロパティのいずれかを使用しているアプリケーションは修正するようにしてください。
catalog_name
フルテキスト カタログの名前を含む式を指定します。
property
フルテキスト カタログのプロパティ名を含む式を指定します。 次の表は、プロパティと、返される情報についての説明の一覧です。
プロパティ | 説明 |
---|---|
AccentSensitivity | アクセントの区別の設定。 0 = アクセントを区別しない 1 = アクセントを区別する |
IndexSize | フルテキスト カタログの論理サイズ (MB 単位)。 セマンティック キー フレーズとドキュメントの類似性のインデックスのサイズが含まれています。 詳細については、後の「解説」を参照してください。 |
ItemCount | カタログのすべてのフルテキスト、キーフレーズ、ドキュメント類似性インデックスなどのインデックス項目の数。 |
LogSize | 旧バージョンとの互換性のためにのみサポートされています。 常に 0 を返します。 Microsoft Search サービスのフルテキスト カタログに関連付けられたエラー ログの結合セットのサイズ (バイト単位)。 |
MergeStatus | マスター マージの実行状況を示します。 0 = マスター マージが実行されていない 1 = マスター マージが実行中 |
PopulateCompletionAge | 01/01/1990 00:00:00 から、最後のフルテキスト インデックス作成が完了した時刻までの時間 (秒単位)。 フル クロールまたは増分クロールの場合のみ更新されます。 更新するデータがなかった場合は、0 が返されます。 |
PopulateStatus | 0 = アイドル状態 1 = カタログ全体を作成中 2 = 一時停止 3 = 絞込み 4 = 復旧 5 = シャットダウン 6 = 増分作成中 7 = インデックス作成 8 = ディスク容量不足、 一時停止。 9 = 変更の追跡 |
UniqueKeyCount | フルテキスト カタログ内にある一意のキーの数。 |
ImportStatus | フルテキスト カタログがインポートされているかどうかを示します。 0 = フルテキスト カタログはインポートされていません。 1 = フルテキスト カタログはインポートされています。 |
戻り値の型
int
例外
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
SQL Server では、ユーザーはセキュリティ保護可能なリソースのメタデータのみを表示できます。 セキュリティ保護可能なリソースは、自身が所有しているリソースか、アクセス許可を持っているリソースです。 そのため、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (FULLTEXTCATALOGPROPERTY など) が NULL を返す可能性があります。 詳細については、「sp_help_fulltext_catalogs (Transact-SQL)」を参照してください。
解説
FULLTEXTCATALOGPROPERTY ('catalog_name','IndexSize') looks at only fragments with status 4 or 6 as shown in sys.fulltext_index_fragments. これらのフラグメントは、論理インデックスの一部です。 したがって、IndexSize プロパティは論理インデックス サイズのみを返します。
ただし、インデックス マージ中は、実際のインデックス サイズが論理サイズの 2 倍になる場合があります。 マージ中にフルテキスト インデックスが使用している実際のサイズを確認するには、sp_spaceused システム ストアド プロシージャを使用します。 このプロシージャは、フルテキスト インデックスに関連付けられているフラグメントをすべて調べます。
フルテキストの作成に失敗する可能性があります フルテキスト カタログ ファイルの拡張を制限し、マージ処理のための十分な領域を割り当てていない場合、失敗する可能性があります。 この場合、FULLTEXTCATALOGPROPERTY ('catalog_name','IndexSize') は 0 を返し、フルテキスト ログに次のエラーが書き込まれます。
Error: 30059, Severity: 16, State: 1. A fatal error occurred during a full-text population and caused the population to be cancelled. Population type is: FULL; database name is FTS_Test (id: 13); catalog name is t1_cat (id: 5); table name t1 (id: 2105058535). Fix the errors that are logged in the full-text crawl log. Then, resume the population. The basic Transact-SQL syntax for this is: ALTER FULLTEXT INDEX ON table_name RESUME POPULATION.
アプリケーションがタイト ループで待ち状態にならないよう注意してください。この状態では、PopulateStatus プロパティを確認するとアイドル状態になっています。 アイドル状態は、カタログ作成が終了していることを示します。 この場合、データベースとフルテキスト検索のプロセスに CPU サイクルの割り当てがなくなり、タイムアウトが発生します。 通常は、PopulateStatus プロパティに対応するテーブル レベルのプロパティを確認する方が便利です。OBJECTPROPERTYEX システム関数の TableFullTextPopulateStatus がこれにあたります。 OBJECTPROPERTYEX で、このプロパティとその他の新しいフルテキスト プロパティを使用すると、フルテキスト インデックス作成テーブルに関するより詳細な情報を取得できます。 詳細については、「OBJECTPROPERTYEX (Transact-SQL)」を参照してください。
例
次の例では、Cat_Desc
という名前のフルテキスト カタログにあるフルテキスト インデックス項目の個数を返します。
USE AdventureWorks2022;
GO
SELECT fulltextcatalogproperty('Cat_Desc', 'ItemCount');
GO
参照
FULLTEXTSERVICEPROPERTY (Transact-SQL)
メタデータ関数 (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)