FULLTEXTCATALOGPROPERTY (Transact-SQL)
SQL Server 2014 のフルテキスト カタログ プロパティについての情報を返します。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、SQL Database V12。 |
構文
FULLTEXTCATALOGPROPERTY ('catalog_name','property')
引数
注意
SQL Server の将来のリリースで削除される予定のプロパティ:LogSize と PopulateStatus。新しい開発作業では、これらのプロパティの使用は避け、現在これらのプロパティのいずれかを使用しているアプリケーションは修正するようにしてください。
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
例外
Exception
Condition
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
SQL Server 2014 では、そのユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なアイテムのメタデータのみを表示できます。つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (FULLTEXTCATALOGPROPERTY など) が NULL を返す可能性があります。詳細については、「sp_help_fulltext_catalogs (Transact-SQL)」を参照してください。
解説
FULLTEXTCATALOGPROPERTY ('catalog_name','IndexSize') では、sys.fulltext_index_fragments で示されているように、状態が 4 または 6 のフラグメントのみを参照します。これらのフラグメントは、論理インデックスの一部です。したがって、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 AdventureWorks2012;
GO
SELECT fulltextcatalogproperty('Cat_Desc', 'ItemCount');
GO
参照
FULLTEXTSERVICEPROPERTY (Transact-SQL)
メタデータ関数 (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)