ORACLE SQLヒントの書き方

本日は、ORACLEデータベースでSQLにヒントを与えるときの書き方を紹介します。

↓ORACLE SQLのヒントを詳しく知りたい方はこちら
ORACLE SQLのヒントとは

ヒントの書き方

SELECT句の後ろに「/*+ ここにヒント*/」を書くことでヒントが書けます。
※ちなみにヒントは間違って書いてもコメント扱いになるため問題はありません。
 しかし、間違って書いている場合は当然、実行計画も変わりませんのでご注意ください。

◆ヒントの記述例

select /*+ ORDERED */
  a.顧客コード
  ,b.顧客名
  ,a.担当者コード
  ,c.担当者名
  ,a.部署コード
  ,d.部署名
  ,a.売上金額
from
  売上 a
  ,顧客マスタ b
  ,担当者マスタ c
  ,部門マスタ d
where
  a.顧客コード = b.顧客コード
  and a.担当者コード = c.担当者コード
  and a.部署コード = d.部署コード
;

◆複数ヒントの記述例

select /*+ INDEX(b 顧客マスタ_idx0) INDEX(b 担当者マスタ_idx0) INDEX(b 部門マスタ_idx0) */
  a.顧客コード
  ,b.顧客名
  ,a.担当者コード
  ,c.担当者名
  ,a.部署コード
  ,d.部署名
  ,a.売上金額
from
  売上 a
  ,顧客マスタ b
  ,担当者マスタ c
  ,部門マスタ d
where
  a.顧客コード = b.顧客コード
  and a.担当者コード = c.担当者コード
  and a.部署コード = d.部署コード
;


よく使うヒント

・ORDERED
 FROM句に書かれた順番でテーブルを結合します。

・INDEX(テーブル別名 インデックス名)
 指定されたテーブルに、指定されたインデックスでアクセスを行います。

・FULL(テーブル別名)
 指定されたテーブルのフルスキャンを行います。

・USE_NL(テーブル別名)
 指定されたテーブルの結合時、ネステッドループ結合します。

・USE_HASH(テーブル別名a テーブル別名b)
 指定されたテーブルの結合時、ハッシュ結合します。

・USE_MERGE(テーブル別名)
 指定されたテーブルの結合時、ソートマージ結合します。

>>OracleSQLに実装すべき3つのSQLヒント

ORACLE SQLヒントの書き方” に対して1件のコメントがあります。

この投稿はコメントできません。