組み込み最適化ガイドライン

最適化ガイドラインは、SYSTOOLS.OPT_PROFILE 表による追加の構成が不要な、組み込み最適化ガイドラインを使用して指定することもできます。 これらは、SQL ステートメントの末尾に配置された、C スタイルのコメント内の最適化ガイドラインです。

組み込み最適化ガイドラインを使用するには、最適化ガイドラインの XML <OPTGUIDELINES> 開始タグと </OPTGUIDELINES> 終了タグを、単純に C スタイルのコメントで囲みます。そのコメントを SQL ステートメントの末尾に配置します。 例えば、
SELECT S.S_NAME, S.S_ADDRESS, S.S_PHONE, S.S_COMMENT 
FROM "Tpcd".PARTS, "Tpcd".SUPPLIERS S, "Tpcd".PARTSUPP PS 
WHERE P_PARTKEY = PS.PS_PARTKEY AND S.S_SUPPKEY = PS.PS_SUPPKEY AND 
   P_SIZE = 39 AND P_TYPE = ’BRASS’ AND 
   S.S_NATION IN (’MOROCCO’, ’SPAIN’) AND 
   PS.PS_SUPPLYCOST = (SELECT MIN(PS1.PS_SUPPLYCOST) 
   FROM "Tpcd".PARTSUPP PS1, "Tpcd".SUPPLIERS S1 
   WHERE "Tpcd".PARTS.P_PARTKEY = PS1.PS_PARTKEY AND 
     S1.S_SUPPKEY = PS1.PS_SUPPKEY AND 
     S1.S_NATION = S.S_NATION) 
ORDER BY S.S_NAME 
OPTIMIZE FOR 1 ROWS 
/* <OPTGUIDELINES><IXSCAN TABLE=’"Tpcd".PARTS’/></OPTGUIDELINES> */
組み込み最適化ガイドラインを使用する場合の一般的な規則
  • 組み込み最適化ガイドラインは、データ操作言語 (DML) ステートメントの SELECTINSERTUPDATEDELETE、および MERGE の各コマンドにのみ適用できます。 オプティマイザーは、その他のタイプのステートメントではそのようなコメントを無視します。 エラーおよび警告は出されません。
  • 組み込み最適化ガイドラインは、ステートメントの SQL 部分の後に配置する必要があります。 副選択内には配置できません。 ただし、他のタイプのコメントを、最適化ガイドラインの前または後で、ステートメントの末尾に配置することができます。
  • オプティマイザーは、DML ステートメントごとに 1 つの組み込み最適化ガイドライン・コメントを検索します。 複数の組み込み最適化ガイドライン・コメントがある場合は、それらがすべて無視され、警告が生成されます。
  • 最適化ガイドラインは、整形式の XML で作成する必要があります。 無関係なテキストを含めることはできません。
  • 組み込み最適化ガイドラインは、最適化プロファイルのグローバル・セクションに指定された、同一の最適化ガイドラインをオーバーライドします。
  • 最適化プロファイルのステートメント・プロファイル・セクションの方式で設定された最適化ガイドラインは、組み込み最適化ガイドラインよりも優先されます。 つまり、CURRENT OPTIMIZATION PROFILE レジスターに最適化プロファイルの名前が含まれており、指定されたその最適化プロファイルに、組み込み最適化ガイドラインが設定されたステートメントに合致するステートメント・プロファイルが含まれる場合は、組み込み最適化ガイドラインがオプティマイザーによって無視されます。