10.5. サブクエリーの最適化


  • EXISTS サブクラシングは通常、SELECT 式の不要な評価を防ぐために「SELECT 1 FROM …」に書き換えられます。
  • 定量化された比較 SOME サブクナップは常に同等の IN 述語または集約値と比較になります。たとえば、col > SOME(テーブルから col1 を選択)は照合されます(表から min(col1)を選択します)。
  • ソースにプッシュされていない Uncorrelated EXISTs および scalar サブクエリーは、ソースコマンドの形式よりも前に事前評価できます。
  • 対応する DELETE/UPDATE の一部としてプッシュされていない DETELE または UPDATE で使用される相関サブキューにより、Data Virtualization が行ごとに補正処理を実行します。
  • マージ結合(MJ)のヒントは、可能な限り従来の半結合またはアンチフォール結合結合を使用するようにオプティマイザーに指示します。依存結合(DJ)は MJ ヒントと同じですが、さらにオプティマイザーに対して、依存する結合の独立側としてサブクエリーを使用するようにオプティマイザーに指示します。これは、影響を受けるテーブルにプライマリーキーがある場合にのみ発生します。そうでない場合は、例外が発生します。
  • WHERE または HAVING 句 IN、Qantified Comparison、Scalar Subquery Compare、および EXIST の述語は、サブクエリーの直前に表示される MJ、DJ、または NO_UNNEST(nest なし)のヒントを取ることができます。NO_UNNEST ヒントは他のヒントに優先して、サブクエリーを残すようにオプティマイザーに指示します。
  • SELECT スカラーサブキューは、サブクエリーの直前に表示される MJ または NO_UNNEST のヒントを取ることができます。MJ ヒントでは、可能な場合は従来の結合または半結合結合を使用するようにオプティマイザーに指示します。NO_UNNEST ヒントは他のヒントに優先して、サブクエリーを残すようにオプティマイザーに指示します。

結合のヒントの使用をマージ

SELECT col1 from tbl where col2 IN /*+ MJ*/ (SELECT col1 FROM tbl2)
Copy to Clipboard Toggle word wrap

依存する結合ヒントの使用

SELECT col1 from tbl where col2 IN /*+ DJ */ (SELECT col1 FROM tbl2)
Copy to Clipboard Toggle word wrap

最も簡単なヒントはありません。

SELECT col1 from tbl where col2 IN /*+ NO_UNNEST */ (SELECT col1 FROM tbl2)
Copy to Clipboard Toggle word wrap

  • システムプロパティー org.teiid.subqueryUnnestDefault は、書き換え中にオプティマイザーがデフォルトでフォレスト外のサブクィジーを設定するかどうかを制御します。true の場合、多くの否定されていない WHERE または HAVING 句 EXISTS または IN サブクエリー述語を従来の結合に変換できます。
  • プランナーは、費用が優先される場合、常にアンチ参加または半結合のバリアントに変換されます。ヒント を使用して、必要な動作を上書きします。
  • プッシュされず、マージ結合に変換されないスケーラーサブクリーピングが存在すると、暗黙的に 1 と 2 の行にはそれぞれ制限で制限されます。
  • ネストされたループ参加へのサブクエリー述語の変換はまだ利用できません。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat