# クエリ実行プラン ## 定義 クエリ実行プラン(Query Execution Plan)とは、SQLクエリテキストを変換して得られる、木構造(まれにDAG構造)のデータフローネットワークである。ノードは物理演算子(TABLE_SCAN・PROJECTION・FILTER・HASH_GROUP_BY・HASH_JOIN等)であり、各ノードは1つの計算ステップを実装する。エッジは子演算子から親演算子へ向かい行データを運ぶ。[[DuckDB]]ではエッジ上を2048行単位の「データチャンク」が一括して流れ、根の演算子(QUERY)が返す行がクエリ結果を表す(Source: [[@2026__DiDi__Query Execution Plans and Pipelining]])。相関サブクエリや共通テーブル式(CTE)のような特定のSQL機能は、木構造では表現できずDAG形状のプランを要求する。 ## 横断的知見 - 今後の取り込みで、複数ソース間の関係を追記する。 ## 未解決の問い - クエリオプティマイザ(論理プランから物理プランへの変換、コストベース最適化)は本概念とどう接続するか。DiDi講義シリーズの他回(オプティマイザ回)が取り込まれ次第、対応関係を追記する。 - DAG形状プランを生む相関サブクエリ・CTEの具体的な実行プラン例(演算子構成)はどうなるか。 ## 関連 - ソース: [[@2026__DiDi__Query Execution Plans and Pipelining]] - 概念: [[プッシュ型パイプライン実行]] - エンティティ: [[DuckDB]] / [[Torsten Grust]] / [[Universität Tübingen]] ## 出典 - [[@2026__DiDi__Query Execution Plans and Pipelining]](DuckDBの物理演算子木構造プランを解説する一次ソース)