フルテキスト インデックス
更新 : 2006 年 7 月 17 日
フルテキスト インデックスは、Microsoft Full-Text Engine for SQL Server (MSFTESQL) サービスによって作成および保持される、特殊なトークン ベースの関数インデックスです。フルテキスト インデックスの作成手順は、他のタイプのインデックスの作成手順とは大きく異なります。特定の行に格納された値に基づいて B ツリー構造を作成するのではなく、MSFTESQL は、インデックスを作成するテキストの個々のトークンに基づいて、反転、スタック、および圧縮されたインデックス構造を作成します。
SQL Server 2005 では、フルテキスト インデックスのサイズを制限する要因となるのは、SQL Server のインスタンスが実行されているコンピュータで使用できるメモリ リソースのみです。
フルテキスト インデックスを作成し、保持するプロセスは、インデックス カタログ作成と呼ばれます。Microsoft は次のようなフルテキスト インデックス カタログ作成をサポートしています。
- すべてのカタログの作成
- 変更の追跡に基づく作成
- タイムスタンプに基づく増分作成
すべてのカタログの作成
通常、フルテキスト カタログまたはフルテキスト インデックスを初めて作成するときに実行されます。作成されたインデックスは、変更の追跡または増分作成を使用して保持されます。
フルテキスト カタログのすべてのカタログの作成では、そのカタログが対象とするすべてのテーブル内のすべての行にインデックス エントリが作成されます。テーブルですべてのカタログの作成が要求されると、そのテーブル内のすべての行に対してインデックス エントリが作成されます。
フルテキスト インデックスの作成時にカタログを作成しないようにするには、CREATE FULLTEXT INDEX ステートメントを使用して CHANGE TRACKING OFF オプションを指定し、さらに NO POPULATION を指定する必要があります。この場合、ユーザーが START FULL 句、INCREMENTAL 句、または UPDATE POPULATION 句を指定して ALTER FULLTEXT INDEX コマンドを実行した後でなければ、インデックスは作成されません。
変更の追跡に基づくカタログ作成
SQL Server では、フルテキスト インデックスの作成対象としてセットアップされたテーブルで変更が加えられた行の記録が保持されます。これらの変更はフルテキスト インデックスに反映されます。
変更の追跡を開始するには、CREATE FULLTEXT INDEX ステートメントに WITH CHANGE_TRACKING オプションを指定します。変更の追跡を使用するときには、フルテキスト インデックスに変更をどのように反映するかを指定できます。
メモ : |
---|
変更の追跡に基づく作成では、対象のフルテキスト インデックスを最初に作成する必要があります。 |
フルテキスト インデックスに自動的に変更を反映するには、CREATE FULLTEXT INDEX ステートメントまたは ALTER FULLTEXT INDEX ステートメントに AUTO オプションを指定します。
MANUAL オプションを指定すると、定期的に手動で変更を反映するか、SQL Server エージェントを使用して反映するか、または自分で変更を反映することができます。
メモ : |
---|
変更の追跡には若干のオーバーヘッドが伴います。SQL Server で変更を追跡しない場合は、CHANGE TRACKING OFF オプションを使用します。 |
タイムスタンプに基づく増分作成
増分作成では、前回の作成以降または前回の作成の実行中に追加、削除または変更された行のフルテキスト インデックスが更新されます。増分作成では、インデックスが設定されたテーブルに timestamp データ型の列が存在する必要があります。timestamp 型の列が存在しない場合には、増分作成を実行できません。timestamp 型の列を含んでいないテーブルで増分作成を要求すると、すべてのカタログの作成が実行されます。
前回のカタログ作成後にテーブルのフルテキスト インデックスに影響するようなメタデータの変更があった場合、増分作成の要求はすべてのカタログの作成として実行されます。これには、列、インデックス、またはフルテキスト インデックス定義の変更が含まれます。
作成が終わると、SQL Gatherer は新しい timestamp 型の値を記録します。この値は、SQL Gatherer が認識したtimestamp 型の最大値に等しくなります。今後、増分作成を開始するときには、この値が使用されます。
参照
概念
その他の技術情報
CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|