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. JOIN
MANUAL
、WHERE
CALL SYSADMIN.setRecOptAllowIndexCreationByType(1,
'JOIN_MANUAL_WHERE'
);