2009年5月6日水曜日

Oracle:代表的なヒント句

ヒント句の使い方:SELECTの後に”/*+ ”を書き、”*/”で閉じる

・INDEX:インデックスを使って処理する
select /*+ index(aidx) */ con1 from tbl1 where a = 'x'

・FULL:表をフルスキャンする
 
・ORDERED:複数表を結像している場合、表の処理の順序をFROM句の順番どおりにする

・USE_NL:Nested Loop結合プランにする。インデックスを使用した結合向き。

・USE_HASH:ハッシュ結合結合プランにする。大量データを扱う結合向き

・INDEX_ASC,INDEX_DESC:インデックスを使用して、降順・昇順にデータを検索する

・LEADING:結合順序の最初の表を指定する

その他は>
http://www.atmarkit.co.jp/fdb/rensai/orasql03/orasql03_3.html

例)
SELECT /*+ LEADING(d e)
INDEX(d dept_ix2)
INDEX(e emp_ix1)
USE_NL(e) */
empno,ename,job
FROM emp e, dept d
WHERE e.deptno=d.deptno
AND d.dname = 'RESEARCH'
ORDER BY empno;

0 件のコメント: