グローバルヒントのTransformヒントは、オプティマイザーに対してクエリ全体の処理方法や変換方法を指示するヒントです。
ヒント名 |
説明 |
|---|---|
NO_QUERY_TRANSFORMATION |
クエリのいかなるリライトも禁止します。 |
NO_COST_BASED_QUERY_TRANSFORMATION |
コストベースのクエリリライトを禁止します。 |
NO_QUERY_TRANSFORMATION ヒント
NO_QUERY_TRANSFORMATION ヒントは、現在のクエリに対するいかなるクエリ変換も禁止します。Query Blockヒントの NO_REWRITE ヒントとは異なり、NO_QUERY_TRANSFORMATION を使用すると、Query Blockヒントで有効にした一部の変換を利用できません。
クエリ変換に関する詳細は、クエリ変換の概要を参照してください。
構文
/*+ NO_QUERY_TRANSFORMATION */
例
-- `NO_QUERY_TRANSFORMATION` ヒントを使用して、いかなるクエリ変換も禁止します。
SELECT /*+ NO_QUERY_TRANSFORMATION */ *
FROM (SELECT * FROM t1) v WHERE v.c1 = 3;
NO_COST_BASED_QUERY_TRANSFORMATION ヒント
NO_COST_BASED_QUERY_TRANSFORMATION ヒントは、現在のクエリに対するコストベースのクエリ変換を禁止します。コストベースのクエリ変換の詳細については、コストベースの変換の紹介を参照してください。
構文
/*+ NO_COST_BASED_QUERY_TRANSFORMATION */
例
-- `NO_COST_BASED_QUERY_TRANSFORMATION` ヒントを使用して、コストベースのクエリ変換を禁止します。
CREATE TABLE t1(c1 int, c2 int, c3 int, index idx1(c1), index idx2(c2));
SELECT /*+ NO_COST_BASED_QUERY_TRANSFORMATION */ *
FROM t1
WHERE c1 = 1 OR c2 = 1;