テキストインデックスを作成します。
CREATE TEXT INDEX [ IF NOT EXISTS ] text-index-name ON [ owner. ] { table-name | mv-name } ( column-name, ... ) [ IN dbspace-name ] [ CONFIGURATION [ owner. ]text-configuration-name ] [ { IMMEDIATE REFRESH | MANUAL REFRESH | AUTO REFRESH [ EVERY integer { MINUTES | HOURS } ] } ]
IF NOT EXISTS 句 IF NOT EXISTS 句が指定され、指定されたテキストインデックスが存在する場合は、変更は行われず、エラーも返されません。
IN 句 テキストインデックスが格納される DB 領域を指定します。この句が指定されていない場合は、テキストインデックスが参照するテーブルと同じ DB 領域でテキストインデックスが作成されます。
CONFIGURATION 句 テキストインデックスの作成時に使用するテキスト設定オブジェクトを指定します。この句が指定されておらず、インデックスのカラムのいずれかが NCHAR の場合は、default_nchar テキスト設定オブジェクトが使用されます。それ以外の場合は、default_char テキスト設定オブジェクトが使用されます。
REFRESH 句 テキストインデックスの再表示タイプを指定します。REFRESH 句を指定しない場合、デフォルトとして IMMEDIATE REFRESH が使用されます。次の再表示タイプを指定できます :
IMMEDIATE REFRESH 基本となるテーブルまたはマテリアライズドビューの変更によってテキストインデックスのデータが影響を受けるたびに、テキストインデックスを再表示します。
AUTO REFRESH 内部サーバイベントを使用して自動的にテキストインデックスを再表示します。EVERY サブ句は、再表示間隔を分または時間単位で指定するときに使用します。間隔情報を指定しないで AUTO REFRESH を指定した場合、データベースサーバは 60 分ごとにテキストインデックスを再表示します。sa_text_index_stats システムプロシージャから返された pending_size の値が、最後の再表示のときにテキストインデックスサイズの 20 % を超えるか、deleted_length がテキストインデックスサイズの 50 % を超えると、AUTO REFRESH 句で指定された間隔よりも早くテキストインデックスが再表示される場合があります。1 分ごとに内部イベントが実行され、AUTO REFRESH の全テキストインデックスに対してこの条件がチェックされます。
MANUAL REFRESH テキストインデックスが手動で再表示されます。
再表示タイプの詳細については、テキストインデックスの再表示タイプを参照してください。
通常のビューやテンポラリテーブルに対してテキストインデックスを作成することはできません。
マテリアライズドビューに対してテキストインデックスが作成されると、そのテキストインデックスを再表示したりトランケートすることは不可能になり、削除だけが可能になります。マテリアライズドビューに対するテキストインデックスは、基本となるマテリアライズドビューが再表示されたり更新されると常に、データベースサーバによって管理されます。
文またはトランザクションのスナップショットを使用する、WITH HOLD 句を使用して開かれたカーソルがある場合、この文は実行できません。
ベーステーブルに対する IMMEDIATE REFRESH テキストインデックスは作成時にデータが設定され、この初期再表示の間はテーブルに排他ロックがかけられます。IMMEDIATE REFRESH のテキストインデックスは、スナップショットアイソレーションを使用するクエリを完全にサポートします。
マテリアライズドビューに対する IMMEDIATE REFRESH テキストインデックスは、そのビューにデータが取り込まれる場合には、作成時にデータが設定されます。
MANUAL と AUTO REFRESH のテキストインデックスは、作成後に初期化 (再表示) されます。
AUTO REFRESH のテキストインデックスの再表示では、独立性レベル 0 を使用してテーブルがスキャンされます。
テキストインデックスの作成後に、その定義を IMMEDIATE REFRESH に変更したり、IMMEDIATE REFRESH から変更したりできません。いずれかの変更が必要な場合は、テキストインデックスを削除して再作成します。
REFRESH TEXT INDEX 文を使用して、AUTO REFRESH テキストインデックスを手動で再表示することができます。
テキストインデックスとそれらが参照するテキスト設定オブジェクトを表示する方法については、テキストインデックスの単語と設定の表示 (Sybase Central の場合)を参照してください。
テーブルのテキストインデックスを作成するには、テーブルの所有者であるか、次のいずれかの権限を持っている必要があります。
マテリアライズドビューのテキストインデックスを作成するには、マテリアライズドビューの所有者であるか、次のいずれかの権限を持っている必要があります。
オートコミット。
SQL/2008 ベンダー拡張。
次の例は、サンプルデータベースの MarketingInformation テーブルの Description カラムについてテキストインデックス myTxtIdx を作成します。MarketingTextConfig テキスト設定オブジェクトが使用され、再表示間隔は 24 時間ごとに設定されます。
CREATE TEXT INDEX myTxtIdx ON GROUPO.MarketingInformation ( Description ) CONFIGURATION default_char AUTO REFRESH EVERY 24 HOURS; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |