Optimizationsが有効化され、Materializationされると、対応するMaterialized Tableに物理インデックスが作成されます。Recommended Index Typeはインデックスの生成タイプを反映し、インデックスの作成方法を制御します。 

インデックスをその型に従って正しく管理するために、インデックス型ポリシー値があります。マテリアライズド・テーブルが実際にマテリアライズされる時(つまり、新しいステージが作成される時)、これらの値はテーブル・インスタンスに対してどのインデックスが実際に作成されるかを制御します。設定可能な値はこの表のとおりです:

Value

Meaning

ALL

All indexes are automatically created

WHERE

Only indexes with type WHERE are created

JOIN

Only indexes with type JOIN are created

MANUAL

Only manually generated indexes are created

NONE

No indexes are created

JOIN_MANUAL

Only indexes with JOIN and MANUAL types are created

JOIN_WHERE

Only indexes with JOIN and WHERE types are created

MANUAL_WHERE

Only indexes with MANUAL and WHERE types are created

JOIN_MANUAL_WHERE

Indexes with JOIN, WHERE, and MANUAL types are created

Please note that values are case-sensitive.

 以下の手順を使用して、推奨される Optimization に個々のポリシー値を割り当てることができます:

CREATE FOREIGN PROCEDURE setRecOptAllowIndexCreationByType(IN recOptId biginteger NOT NULL, IN allowIndexCreationByType string NOT NULL)

現在設定されている値を知るには、 RecommendedOptimizations.allowIndexCreationByType フィールドをチェックできます:

SELECT allowIndexCreationByType FROM SYSADMIN.RecommendedOptimizations ;

 createOptimizationJob()を使用して Optimization ジョブを作成する場合、indexCreationByType パラメータを設定して、ジョブの個別ポリシー値を定義できます。デフォルト値は、対応する最適化の allowIndexCreationByType フィールドの値です。 

現在設定されている値を確認するには、ジョブ実行レコードの ScheduleJobs.indexCreationByType フィールドまたは ScheduleJobRun.indexCreationByType を確認します:

SELECT allowIndexCreationByType FROM SYSADMIN.ScheduleJobRun ;
 
SELECT allowIndexCreationByType FROM SYSADMIN.ScheduleJobs ;

異なる値を設定したいくつかの例を示します: 

1. WHERE

CALL SYSADMIN.setRecOptAllowIndexCreationByType(1, 'WHERE');

2. JOIN

CALL SYSADMIN.setRecOptAllowIndexCreationByType(1, 'JOIN');

3. JOINMANUALWHERE

CALL SYSADMIN.setRecOptAllowIndexCreationByType(1, 'JOIN_MANUAL_WHERE');