ページの先頭行へ戻る
Symfoware Server V10.0.0 チューニングガイド

4.7.1 CASTを使用したSQL文のチューニング

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))