11.4. 処理


結合アルゴリズム

ネストされたループは最も明らかな処理を行います。外元のソースのすべての行については、内部ソースのすべての行と比較されます。ネストされたループは、結合基準に equi-join 述語がない場合のみ使用されます。

マージ結合は最初に結合した列で入力ソースをソートします。各サイドを並行して実施できます(ソートされたソースごとに 1 つを渡し、一致する場合は行を生成します)。  通常、マージ参加は、ネストされたループでは n*m ではなく n+m の順序になります。  マージ結合はデフォルトのアルゴリズムです。

エンジンはコスト情報を使用することで、完全なソートマージの結合が意思決定を遅らせる可能性があります。エンジンは、実際に関連する行数に基づいて、小さい側のインデックスを構築する(ハッシュ参加と同様のもの)か、関係の大きいものだけを部分的に並べ替えたりを選択できます。

equi-join 述語を伴う結合は、依存する結合に変換することができます。詳細は、Federated optimizations の「 Dependent joins 」を参照してください。

ソートベースのアルゴリズム

並べ替えは、Soritch(ORDER BY)、Grouping(GROUP BY)、および DupRemoval(SELECT DISTINCT)操作のベースとして使用されます。  ソートアルゴリズムは、すべての結果セットをメモリーに入れる必要がないマルチパスマージ手段で、バッファーマネージャーで許可される最大メモリー容量を使用します。

並べ替えは 2 つのフェーズで構成されます。  最初のフェーズ("sort")では、アルゴリズムはソートされていない入力ストリームを処理し、1 つ以上のソートされた入力ストリームを生成します。  それぞれのパスでは、分類されていないストリームをできる限り読み取り、ソートし、新しいストリームとして書き直します。分類されていないストリームが処理されると、生成されるソートストリームがメモリーに存在するために大きすぎる可能性があります。ソートされたストリームのサイズが利用可能なメモリーを超える場合、これは複数のソートされたストリームに書き込まれます。

ソートアルゴリズム(マージ)の 2 番目のフェーズは、ソートされた入力ストリームの数から次のバッチを取り除く一連のフェーズで構成されます。  その後、各ストリームからソート順に次のタプルを繰り返し取得し、ソートされたバッチを新しいソートストリームにマージします。  フェーズが完了すると、すべての入力ストリームがドロップされます。  これにより、各フェーズはソートされたストリームの数を減らします。 1 つのストリームのみが残っている場合は、最終出力になります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat