SQL文でのヒントの使用
このトピックでは、物理表および物理結合にSQLヒントを追加する方法について説明します。
SQL文のヒントについて
ヒントとは、SQL文に追加するインストラクションで、データ・ソース問合せオプティマイザに、その文を実行するための最も効率的な方法を指示します。
ヒントは、オプティマイザの処理計画より優先されるため、ヒントを使用して、より効率的な計画を使用するようオプティマイザに強制することにより、パフォーマンスを向上させることができます。ヒントは、Oracle Databaseデータ・ソースでのみサポートされています。
物理表または結合式にヒントを追加できます。ヒントに関連付けられたオブジェクトに対して問合せが実行されると、Oracle Analytics問合せエンジンによってヒントがSQL文に挿入されます。
物理表の場合、ソース・タイプが「表」の表に対して指定するSQLヒントはサポートされますが、ソース・タイプが「ストアド・プロシージャ」または「SELECT文」の表に対して指定するSQLヒントは無視されます。ソース・タイプが「SELECT文」の表の場合、「DEFAULT」フィールドに入力するSQL文の一部としてヒントのテキストを入力できます。
索引ヒントについて
索引ヒントは、オプティマイザが表ではなく特定の索引をスキャンする方法を示します。
使用する Oracle Databaseのバージョンについては、SQLリファレンス・ガイドのOracleヒントに関する項を参照してください。
次に、索引ヒントの構文を示します:
index(table_name,index_name)
たとえば、ORDER_ITEMS
表に対する問合せが遅いため、問合せオプティマイザの処理計画を確認し、FAST_INDEX
が使用されていないことがわかったとします。ORDER_ITEMS
表ではなく、FAST_INDEX
をスキャンするようオプティマイザに強制する索引ヒントを作成できます。
index(ORDER_ITEMS, FAST_INDEX)
Leadingヒントについて
Leadingヒントは、特定の表で問合せの結合順序を構築するようオプティマイザを強制します。
使用する Oracle Databaseのバージョンについては、SQLリファレンス・ガイドのOracleヒントに関する項を参照してください。
次に、Leadingヒントの構文を示します:
leading(table_name)
たとえば、Sales Fact表とProducts表の間に結合があり、Products表との結合を開始するようオプティマイザに強制するとします。
leading(Products)
SQL文のヒントのパフォーマンスに関する考慮事項
十分に調査され、計画されたSQL文のヒントは、問合せのパフォーマンスを大きく向上させることができます。ただし、ヒントは、処理計画が不十分であると、パフォーマンスに負の影響を与えることもあります。
ヒントを作成して問合せのパフォーマンスを最適化するには、次のガイドラインに従ってください。
-
ヒントは、次の方法でパフォーマンスの向上を試みた後でのみセマンティック・モデルに追加します:
-
Oracle Databaseに物理索引またはその他の物理変更を追加します。
-
サーバー内でモデリングの変更を行います。
-
-
頻繁に問合せが実行される物理表オブジェクトと物理結合オブジェクトには、ヒントを作成しないようにします。ヒントに関連付けられている物理オブジェクトを削除または名前変更した場合は、それに応じてヒントも更新する必要があります。
物理表のヒントの作成
物理表にSQLヒントを追加できます。ヒントは、別名表には追加できず、そのソース表にのみ追加できます。
ヒントには、SQLコメント・マーカー(/*または--)を使用しますが、ヒントのテキストの入力時にSQLコメント・マーカーを入力しないでください。ヒントの実行時に、Oracle Analytics問合せエンジンによってコメント・マーカーが挿入されます。
使用できるOracleヒントとヒント構文の説明は、使用しているバージョンのOracle DatabaseのSQLリファレンスを参照してください。
- ホーム・ページで、「ナビゲータ」、「セマンティック・モデル」の順にクリックします。
- 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
- 「物理レイヤー」をクリックします。
- データベース・ペインで、SQLヒントを追加する表を参照してダブルクリックします。
- 「一般」タブをクリックし、「SQLヒント」フィールドにSQLヒントを入力します。
- 「保存」をクリックします。
物理結合のヒントの作成
別名表の物理結合にSQLヒントを追加できます。
ヒントには、SQLコメント・マーカー(/*または--)を使用しますが、ヒントのテキストの入力時にSQLコメント・マーカーを入力しないでください。ヒントの実行時に、Oracle Analytics問合せエンジンによってコメント・マーカーが挿入されます。
使用できるOracleヒントとヒント構文の説明は、使用しているバージョンのOracle DatabaseのSQLリファレンスを参照してください。
- ホーム・ページで、「ナビゲータ」、「セマンティック・モデル」の順にクリックします。
- 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
- 「物理レイヤー」をクリックします。
- 表にマウス・ポインタを重ねて右クリックします。「物理ダイアグラムの表示」および作業元のダイアグラム・タイプを選択します。
- 結合をダブルクリックします。
- 「物理結合の編集」で、「ヒントを含める」フィールドをクリックし、SQLヒントを入力します。
- 「保存」をクリックします。