6. Left-Deep Join
A⨝B⨝C⨝Dを考える
A B C D
⨝ ⨝
⨝
でN!通り
A C B D
⨝ ⨝
⨝
A D C B
⨝ ⨝
⨝
A B
C
D
⨝
⨝
⨝
A C
B
D
⨝
⨝
⨝
A D
C
B
⨝
⨝
⨝
でN!通り
...…
...…
Bushy Tree
Left Deep Tree
7. Left-Deep Join
A⨝B⨝C⨝Dを考える
A B C D
⨝ ⨝
⨝
でN!通り
A C B D
⨝ ⨝
⨝
A D C B
⨝ ⨝
⨝
A B
C
D
⨝
⨝
⨝
A C
B
D
⨝
⨝
⨝
A D
C
B
⨝
⨝
⨝
でN!通りの方は無視
...…
...…
Bushy Tree
Left Deep Tree
Bushy TreeはMaterializationが必須になるが速くなる事もある。
…が切り捨てる。
28. Interesting Order
Andy の授業の動画では「System-Rは段階ごとに最適解を探すので局所最適に落ちて
しまい個別のSM JOINを用いた場合の最適解を見つけることができない」と言っている
ように見える。
動画のコメントでもAndyは「the original System R dynamic programming algorithm
only considers join orderings. The physical sort order of the data is not part of that
search.」と言っている。
しかしこの論文では明らかにInteresting OrderはSystem-Rの一部として書かれてい
る。
29. Interesting Order with DP
「特定の列で整列されたテーブル」を別のターゲットとして扱う
下から順にテーブルを埋めていくが SortMerge Joinなどで順序が違う物は別の物として DP表を埋める
NoOrder .b_id .a_id .t_id .name .score
1000100 2441231
1000000 ∞ ∞ ∞ NA ∞
1000100 NA ∞ 21233242 ∞ ∞
100 ∞ ∞ NA ∞ ∞
100 NA 223 NA 284 NA
1000000 NA NA ∞ NA NA
1 1 NA NA NA 1
sort merge join
sort