Optimizationsが有効化され、Materializationされると、対応するMaterialized Tableに物理インデックスが作成されます。Recommended Index Typeはインデックスの生成タイプを反映し、インデックスの作成方法を制御します。
インデックスをその型に従って正しく管理するために、インデックス型ポリシー値があります。マテリアライズド・テーブルが実際にマテリアライズされる時(つまり、新しいステージが作成される時)、これらの値はテーブル・インスタンスに対してどのインデックスが実際に作成されるかを制御します。設定可能な値はこの表のとおりです:
Value | Meaning |
|---|---|
| All indexes are automatically created |
| Only indexes with type |
| Only indexes with type |
| Only manually generated indexes are created |
| No indexes are created |
| Only indexes with |
| Only indexes with |
| Only indexes with |
| Indexes with |
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. JOINMANUAL、WHERE
CALL SYSADMIN.setRecOptAllowIndexCreationByType(1, 'JOIN_MANUAL_WHERE');