CASTオペランドにインデックス構成列を指定して、インデックスの範囲検索を行いたい場合があります。最適化パラメタ“SCAN_KEY_CAST”で、インデックス検索の適用を拡大することで、CASTオペランドについてもインデックスの範囲検索を行います。
以下の場合、チューニングの効果があります。
WHERE句または結合表の結合条件に、CASTに指定した列と、列を含まない値式を比較述語“=”で指定している場合。
インデックス定義
人事テーブル.IX1<従業員番号> 従業員番号:DEC(6)
SELECT 等級
FROM 人事テーブル
WHERE CAST(従業員番号 AS CHAR(8)) = '123456'
以下の場合、チューニングの効果があります。
WHERE句または結合表の結合条件に、表の列同士を比較演算子“=”で指定した条件(表の結合関係を表す条件)を指定している。かつ、
上記の条件の比較演算子“=”で指定した片方または両方の列をCASTオペランドに指定している場合。
インデックス定義
人事テーブル.IX1<従業員番号> 従業員番号:DEC(6)
目標管理テーブル.IX2<従業員番号> 従業員番号:INTEGER
SELECT 人事テーブル.従業員名,目標管理テーブル.難易度
FROM 人事テーブル,目標管理テーブル
WHERE 人事テーブル.従業員番号
= CAST(目標管理テーブル.従業員番号 AS DEC(6))