テーブルアクセスフルスキャンを無くしてチューニングする方法

ORACLE SQLのSELECT文が遅いときの一番簡単なチューニング方法を紹介します。

SELECT文が遅い原因の多くが対象データの抽出にかかる時間です。

下記のようなSELECT文が遅い場合に、テーブルアクセスフルスキャン(table access full)、つまり全表検索している場合には、抽出条件である「div_cd」にインデックスを作成しましょう。

◆SELECT文の例

select
  *
from
  table1 a
where
  a.div_cd = ‘100’
;

◆インデックスの例

CREATE INDEX table1_idx0
  ON test01.table1(div_cd) TABLESPACE index_tbs;

インデックスを作成しても速くならない場合

インデックスを作成しても必ずインデックスが利用されるとは限りません。

そんな場合は、ヒント句を追加して実行計画を固定しましょう。

select /*+INDEX(a table1_idx0)*/
  *
from
  table1 a
where
  a.div_cd = ‘100’
;