Oracle SQLのHint句のメモ
┌───────┐
DELETE ─┬─/*+ ─┴┬─ Hint ─┬┴─ */─
SELECT ─┤ └─ Text ─┘
UPDATE ─┘
Hint(ヒント)の種類
* ALL_ROWS(コストベース)
最高のスループットを目標として、文ブロックを最適化。
SELECT /*+ ALL_ROWS */ EMPNO FROM EMP WHERE EMPNO = 123;
* FIRST_ROWS(コストベース)
最高の応答時間目標として、文ブロックを最適化。
SELECT /*+ FIRST_ROWS */ EMPNO FROM EMP WHERE EMPNO = 123;
* CHOOSE(コスト/ルールベース)
テーブルの統計に基づいて、オプティマイザの種類を選択。
最高のスループットを目標として最適化。
SELECT /*+ CHOOSE */ EMPNO FROM EMP WHERE EMPNO = 123;
* RULE(ルールベース)
ルールベースのオプティマイザを選択。他のヒントは無視される。
SELECT /*+ RULE */ EMPNO FROM EMP WHERE EMPNO = 123;
Text(アクセス方法)の種類
* FULL(table)
指定されたテーブルに対して、全表走査を選択。
SELECT /*+ FULL(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* ROWID(table)
指定されたテーブルに対して、ROWIDによる表走査を選択。
SELECT /*+ ROWID(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* CLUSTER(table)
指定されたテーブルをアクセスするために、クラスタ走査を選択。
SELECT /*+ CLUSTER(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* HASH(table)
指定されたテーブルをアクセスするために、ハッシュ走査を選択。
SELECT /*+ HASH(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* INDEX [_ASC] or [_DESC] (table index)
指定されたテーブルに対して、インデックス走査を選択。
SELECT /*+ INDEX(EMP IDX_EMPNO) */ EMPNO FROM EMP WHERE EMPNO = 123;
* INDEX_FFS [_ASC] or [_DESC] (table index)
指定されたテーブルに対して、高速全索引走査を選択。
※ 初期化パラメータに「fast_full_scan_enabled=true」が必要。
SELECT /*+ INDEX_FFS(EMP IDX_EMPNO) */ EMPNO FROM EMP WHERE EMPNO = 123;
DELETE ─┬─/*+ ─┴┬─ Hint ─┬┴─ */─
SELECT ─┤ └─ Text ─┘
UPDATE ─┘
Hint(ヒント)の種類
* ALL_ROWS(コストベース)
最高のスループットを目標として、文ブロックを最適化。
SELECT /*+ ALL_ROWS */ EMPNO FROM EMP WHERE EMPNO = 123;
* FIRST_ROWS(コストベース)
最高の応答時間目標として、文ブロックを最適化。
SELECT /*+ FIRST_ROWS */ EMPNO FROM EMP WHERE EMPNO = 123;
* CHOOSE(コスト/ルールベース)
テーブルの統計に基づいて、オプティマイザの種類を選択。
最高のスループットを目標として最適化。
SELECT /*+ CHOOSE */ EMPNO FROM EMP WHERE EMPNO = 123;
* RULE(ルールベース)
ルールベースのオプティマイザを選択。他のヒントは無視される。
SELECT /*+ RULE */ EMPNO FROM EMP WHERE EMPNO = 123;
Text(アクセス方法)の種類
* FULL(table)
指定されたテーブルに対して、全表走査を選択。
SELECT /*+ FULL(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* ROWID(table)
指定されたテーブルに対して、ROWIDによる表走査を選択。
SELECT /*+ ROWID(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* CLUSTER(table)
指定されたテーブルをアクセスするために、クラスタ走査を選択。
SELECT /*+ CLUSTER(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* HASH(table)
指定されたテーブルをアクセスするために、ハッシュ走査を選択。
SELECT /*+ HASH(EMP) */ EMPNO FROM EMP WHERE EMPNO = 123;
* INDEX [_ASC] or [_DESC] (table index)
指定されたテーブルに対して、インデックス走査を選択。
SELECT /*+ INDEX(EMP IDX_EMPNO) */ EMPNO FROM EMP WHERE EMPNO = 123;
* INDEX_FFS [_ASC] or [_DESC] (table index)
指定されたテーブルに対して、高速全索引走査を選択。
※ 初期化パラメータに「fast_full_scan_enabled=true」が必要。
SELECT /*+ INDEX_FFS(EMP IDX_EMPNO) */ EMPNO FROM EMP WHERE EMPNO = 123;
- スポンサーリンク -
コメントやシェアをお願いします!