Pro*C/C++プリコンパイラは、SQL文中のオプティマイザ・ヒントをサポートしています。オプティマイザ・ヒントとは、Oracle SQLオプティマイザへの提案機能であり、通常行われる最適化アプローチを上書きできます。ヒントを使用して、次の事項を指定できます。
SQL文の最適化アプローチ
参照されているそれぞれの表へのアクセス・パス
結合のための結合順序
表を結合する方法
ヒントによって、ルールベースの最適化およびコストベースの最適化のどちらかを選択できます。コストベースの最適化を使用する場合は、この他にスループットまたは応答速度を最大にするためのヒントを使用できます。
オプティマイザ・ヒントは、SELECT、DELETE、UPDATEコマンドの直後に、C形式またはC++形式のコメントの中で発行できます。コメント開始記号の後に間にスペースを空けないでプラス記号(+)を入力し、コメントに1つまたは複数のヒントが含まれていることを示します。たとえば、次の文では最善のスループットを得るために文のコストベース・アプローチの最適化を行うALL_ROWSヒントを使用しています。
EXEC SQL SELECT /*+ ALL_ROWS (cost-based) */ empno, ename, sal, job INTO :emp_rec FROM emp WHERE deptno = :dept_number;
この文で示されているように、コメントには、オプティマイザ・ヒントのみでなく、他のコメントも組み込めます。
コストベースのオプティマイザとオプティマイザ・ヒントの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。