P.-gA. LARSON. Microsoft Research, One Microsoft Way ...... Usually, a DBMs chooses an access method for a join query based on the physical properties and ...
! " # !$! %& '(
) *+ ,-.
! % / * 0*12
" # $ " $! %&'()*%% ! * #& 345 ( 6( ! #& * 7 !' ( ( & 8 9 345 ' 8# ! & ! #& !' ! ! # & & ' ( & # ! * & '# !: ' !' ( ( ! 8 ! #& ! # ' ' ! 8 !' 8 ! # ! ' ! (
;' #! ' '< ! !
8 ' (# ! ! & ## !' 8 ! ; * ) ,&
* ) , *
* * * 0 , * )
, & ' 0 , , 0 , &
"
) , * *&
*
) *
) > * > 0 * ) , > )
& Æ , &
*) 4 K
K !
! ! !
,
)- 0
* * , ,
0: 453 # # & # < ' # #& ( ' #&
- 1 -
&
) 4
4
&
*
)-
*
&& & * )- * 4 * 4 & * *
, )- & &
' )- * *
' Æ * 4
4 & !
)- * &
/) & " ? 6 $ 7 ) + , * & '
#+ 6&
' 6& ! *) , * * ) K
K K K K K
> &
4
;& ! ;& =6
' * ! 4
) , ) * & ' 0 , * 4 $ ) * &
* ) , * *
) , ; < & , - * ) , &
- . . #/ 0
E
*) ) *
& = * ) * + * * &
" ) & = ? 5 8 ? 6 B 6 , K ? 5 M 6 ! M ! * ? 6 6 ? 5 M 6 ! 8 ) ! ? " & ) * , ? 5 8& = 6 K ? 5 M 6 ! M ! * ? 6 6 ? 5 M 6 ! 8 ) ! ? " & ' N * D & $&
? E
? 6
B>
N&
* )
one subrange S 1 similar to
S2
Ij 1
Ij 2
Ij k
I j Nj
1
2
k
Nj
Uj
Lj
( j = 0, 1, ..., 5 ) @( 1( % ! #
)
* ) )&&& N&
"
) , * *& D
N *
) * )
> * * )&& N> * )&& N ) )&&& N &
&
.+ , 0
*) 4 K
K # $ N% ! ! ! ! *
! # !' # # ( ! & # ! #
;' > > > > &
D 4 $ O A ) )-
&
*
&
*
? E
)- ) + *
B * N 6> &&
* *
&
)
* *
* N ! 4
&
) &
/ * * ) & ' N * , J * & * , * & , * ) & '* Æ ! 4
* , *
&
' ! $%!%" '%++ % = ) , * * )
, & ! ) ) , ) * , P ' ) & D + * *) )
& ' $A $A * *&
, K
*) * K 6& )
) >
$& )
) >
7& ) ? @( @(>
?
A& * &
;'
!# 8# & ' G6 8 !
- . . #/ 0
C
) , & * ) ) & "
' ,
*) 4 K
K
#+ 7&
'
!
' *) ,
½ ½
K
K
K
½
K
, * ! 4
&
,% "" '%++ %
) * * ) , ) % & D + * *) ) , K
* ) *) 4 K
"
%
) , &
*
) % )
& , &
&
'
*) 4 K
K
!
- % )!++ % : * % , * * * 4 & D + * *) ) , K
½
&
½
) *) 4 K
"
) % , &
& * %
* ?
)
- 1 -
, &
D
'
*) 4 K
K
!
'' $ . %" ' * ,& ' * , 4 & * ' $ 7& ;& % ! . )
!"
#$% %& '%% (%$ $) $ % * + , $ $ %$ & -.% %& - $ $ % %/ * $ $) $ % * + , $ $ %$ & $ " -.% %& - $ $ % %/ * $ $) $ % * $ $ %$ & " -.% %& - $ $ % %/ * $ $)
$ % * $ $ %$ & 0 " -.% %& - $ $ % %/ * $
$- $ % $ $ %$ & 0 "
*
, 4 * ,
, %& +0 *
?
0 + &
%
+0 * % +0& D + % 5
7 ? G $8 +0 *
+0& ;& % ! )
!"
#$% %& '%% (%$ $) /% % $ $ %$ & -.% %& - $ $ % %/ * % % "% $ $) /% % $ $ %$ & $ " -.% %& - $ $ % %/ * % % "% $ $)%% /% % * % % % " $ , $ $ $ %$ & " -.% %& - $ $ % )$" %/ &% % % "% $%) /% % $ $ %$ & 0 "
# ' $ 7 4 ) , - + & '* ,
4 &
- . . #/ 0
B
) , & D * ) & "
' 4 K
K
%
# $ !
3 ) * 4 &
) , ) , 4 % ? ) 0 + , )& = % & * O > * #+ A&
D
4
4 )
* *) * , K 6& 0 + ) - $& + ) - 7& 0 + ) A& + ) B& , &
O
>
* *
*) * % , K 6& 0 + % $& + % 7& 0 % ) + A& 0 % & ' ) 4 )& ' ' $ 7&
*
' ' !! '# !'
' 8
#
& ! ! '
- 1 - #+ B&
! *) , K
K K K )
½
½
½
0 +
+ & =
0 * ! 4
& ) * 0 +0 * * &
+ *
,"'% / !""#! %" ' 4 * * & /) * % * 4 * ) & D + , *
O
0
, 4 * , % )
+
&
' )
' $& ' )
& = * ) ) * , * &
)
* * ) -
4 &
* , *
' * ) )
* * , + * * & / * & ' , & D * , * * 40 *& '* 4 & * * ) % * . & * * * * -)&
0 > && * * * * > ) & ' ) 0 * 4 & &
4 -
- . . #/ 0 * )
4 ) * 4 ) & 3 !"# $ *
+ * ,& D * * 4 4 , - &
+ & ' * 0 4 % & /) #Q# * + * ,& ' * & ' * 4 * ) & ) + 4 &
4 * *
* , * &
& ! ) 4 * , * & # * 4 & /) ) 4 P
R 0 * )&&& R 0 1 * + R 6 , 1 & "
) ,
4 &
Æ
1K
R%
1
4 4 G ,
, ) *) 4 * K
# $ $ R 1
!
' 4 4 4 )&&&
R&
1
* R ) ,
, * 4 )&&& R&
' ! ' * , * 4 *) *&
# ) # 4 R& D )
* + $ $ * ) 4 )&&& R & " R * 4
4 )&&& R * ,
R
? R
- 1 -
&
R * 1 % 1 % * % % & D % 1 $ $ 1 % ) 1 % & '* * ) 4 & * R ?
R ?
&
R
" 6 ) 0 * ) 4 * + ) , ) ) ) 4 D & 7& D )
a new class two old classes
s Class 1
w ~
merge t
Class 1 U Class 2
Class 2
@( 3(( ; %>
6$&
R K? R
6E&
%> 6A& % > 6B& %
#>
67&
" )
6 4 * ,
&
"! 1 %%""2 D * , R * 40
6 4
* )&&&
R&
' * 4 * 7 O 67& " 4 '0 & = * ' 4 4
)&&& R ? # # # & = '& ! 6& ' ? 6& , - "
R?
# # #1 ) #
& 4 )&&&
* 4 &
* 7 O 67 + 0
)
*
" 6 $ && ( ) &
(
*
) % & ' C O 66 6 % ( * & / ( ) ( & 3 * ) * 4 4 & ' ( ? ( ( ( ? & '* ( ? ) & ) * * &
*
%
) *
* &
) * ! $&
'
*
? 6&
'
?
'*
6&
!
( ) * " 6 $ && ( ) & *
&
0 7 O 67 +
'
?
&
*
- 1 -
% ) ( % 1 * ( ) ( ( % * # ? # * % * *
3) )
( #
R &
6 *
* +
) & ' + %
*
( )&
*
0 & 3
*
) (&
*
*
#
? #
*
C O 66
* 60
*
&
%
( %
60
*
'
4 &
&
( (&
% ( & ' % ) ( & / ) ( ? & ) ) ( & ( ) ) ( ( ? ) > * * & " ) ) ) * * * 0 & " 7 ) * ( ( ( 6 * & D + * * + ) ? & + & * ( 6 & ) + ) " 7& * ? 6 ) ? ( * * 0 & * $ * ) ( ( 6 + ( ( + ( ( ( ( 6 $ & ) ( ( ) & ( 6 * * 60 & ! C O 66 ) ( 6 6
*
*
) *
(&
%
0 *
)
*
*
*
0 &
D )
'
) &
0 & / *
*
0 & D ! 6 $
0
6 4 & #+ C&
* , *) , K K K K K K K K
0 + * , * & * 4 & : 6 4 * ) R& )
" R ?
E
- . . #/ 0
D
R
D
D
D
?
R
D
?
?
R
?
?
R
R
' 4
?
+ 4 &
-
0 + ) 0 + ) - , *
&
* , R *
&
* )
D )
&
*
*
)- 4
R ) ) 4 4 & /)
) * * ,
>
&&
* R&
( # * 4 )- 4 * 4 * * , & ' * )- * 4 * 4 &
#
4 +
1 R * 4 *
*
)-
&
* ,
R * + 0 R
R
1 * > && 1 & )
&
! 4 7 * 4 6E ) R ? ! * 4 R
?
) & ' *) K
- 1 -
"!
D
* % , 4
R &
" * , * % ,
&
?
" *) 7 O 67
?
&
6& ! 4
4& * * , K
% , $ #!$ , - . $ !/ $ .. ? #! $ . $0 00 7&7
?
,
* & & % K
%
% , $ #!$ , - . $ !/ $ .. ? #! $ 00 7&A
?
!
% &
*)
% K
?
)
% , $ #!$ , - . $ !/ $ .. #! $ . $0 00 7&B % , $ #!$ , - . $ !/ $ .. #! $ 00 7&C 7&L
?
?
&
!
% )
?
7&H
*) % 0
K
?
, $ #!$ , - . $ !/ $ ..
?
? #! ! 1! $ . $0 00 7&G , $ #!$ , - . $ !/ $ .. ? #! ! 1! $ 00 7&6E
- . . #/ 0
C
?
?
!
, $ #!$ , - . $ !/ $ 0 $1 .. - $ 20 1 7&66 7&6$
O
% )
'*
O
?
7&67
* 4 * ,
)
6& 6 B * ? 6> 6 A * ? $ * + , , , , ,
4 D ,
,
F F ) , & ) * , , * , , , , > , , & '* &
% 0 * % , & '*
&
' $ 4 4
&
' * * ' $ *) K
" R
?
1
& ' 4 ? )
! 4
&
4 7&7 O 7&6$ &
4 * ,
, &
3 $(0 !""#! $$!) ' 0 4 7 , 4 & /) * , , ) , &
0 ) 4
* 4 + * & ' * 0 ) 4 *)& ' 0 4 * ) * , & * * * , 4 4 &
' * *
* & ' * 4 & : * & /) 4 4 ) ,
- 1 -
D
* 4 ) * *&
( ) " 0 ) 4 & ' *) K
4 * /
+ , ! &
4 )
K
)
?
A&6A
? % , $ ? , $& ' 4 + * , &
* ) -) * * , ) 4 4 A&6A& D + * ) -)
' $ )
)
4 7&7
?
A&6B
,
O
?
&
A&6C
4 7&A O 7&L &
* ) -) * )
)
' $ ) )
K
)
) K
* ) -) *
?
' 7
K
A&6L
4 7&G O 7&6$ &
*
6
B> 6
A *
* * D & A& D +
!"# L&E
+ - * +0 %
6E ? 6B ) + * , & ' * ) J , +0 %
, ) %& + * ,
B
- . . #/ 0 G
G1
G2
G11
G1’
G12
G13
G21
G22
G24
G15
@( E ( ) ; # ,
- 1 -
, 4 * )& D +
,
% 4
7&7 0 + ) - & ,
4
) ) 4 & /) 0 )
4 - > , % & '* ,
0 ) 4 4 *)K
"
) , ,
7&7
&
*
&
' 4 K
2 K
: 4 *
&
!
) K
D ) 4 ,
4 & = 4 * , 0
> ) ,
* 0 4 & /) ) 4 * , 0 )
&
D + *) 4
K
2 K
! * * ) 4
2
2
* ,
) , * * 2 2 & / 4 * A&6B A&6A&
) , R 0 * 2 4 & )&&& R 1 * 2 * R & 1 2 ) , & 4 1 "
K
- . . #/ 0
E
M1K
R%
# $ $
!
0 ) 4
R
2
1
6 0
&
( - '
3 0 * * , 4 ) & ' 0 ) & /) Æ 4 * 4 ) *) *&
Æ
0 ) 0 & ' ) 4 4 * 0 ) ) 0 4 * 4 &
5 %'*%")$ %"+ %) !"% !6" , 4 ) * ,&
* * , *
, ) * , , &
'
- , * , , ) , & /) Æ * &
* ,
- ) , * , * 4 & D + ) , ,
?
- * , %
, 4 )
0 + &
) Æ & ' - , - * , 4 ) , , - * , 4 & / - * , 4 * , ) & " , 7&A&
3 3 3 6 , 4 * ,& # % 3 6 (& * @( & "
?
. / 0 1 ) 1 " , 4&
-
- 1 - , ) ' A&
* , 4
E
;& E 1: . ) %#!
physical property clusteredof R.a indexed predicate rank
sequential
R.a = C
1
2
5
R.a < C
3
4
5
R.a C
3
4
5
R.a >= C
3
4
5
R.a != C
5
5
5
R.a nil C (‘true’)
5
5
5
R -- table
indexed
a -- column
C -- constant
( ( *) * -K 4 4 4
? B
'
$
B&6H
3 3 3 ? ' 3 3 3 )
4
6
B&6G
' ( - * ( &
* - * *)K - 6K
0 + ) -
- $K
+ ) -
- 7K
0 + )
- AK
+ )
- BK
, &
: ) - Æ & '* * ) + , ) ) -& ' * . * B&6G& ' * % * , 4 * , ) - * ) ,& *
4 4 4
+0 , * Æ & / , & ' * . * B&6H& #+ L&
! *) , , 4 K
K ? 7 B L
E
- . . #/ 0 K H ? C G K ? 7 ? B C
K L B G
)
+ 0 + , 0
& ' - - % * , 4 *)K
? ?
? ? ?
' ? 7 B L ' $ 7 B ? $ ' A B ? A ' $ 6 B ? 6 ' B B ? B
) * , ) , 4
- + ) - +
) 0 + ) - , & ' - % * * * F &
.& / 2 1 ) 1 - , 4 * % , ) ' B C& D , 4 ;& 1: ( %#!
;& C 1: . %#!
)
physical rank of property clusteredconjunct of Ri.a= Rj.b indexed Rj.b physical property of Ri.a
* % ,
)
indexed
sequential
physical property clusteredrank of R.a indexed predicate
indexed
sequential
R.a = C
3
3
4
R.a < C
3
3
4
1
1
1
R.a C
3
3
4
sequential
1
2
4
R.a >= C
3
3
4
R.a != C
4
4
4
R.a nil C (‘true’)
4
4
4
clustered-indexed
rank ( non-conjunct Ri.a = Rj.b ) = 4 Ri, Rj -- tables,
a, b -- columns
R -- table
a -- column
C -- constant
* B&6G * B&6H K
4 4 4 ? ' 4 4 4
B&$E
- 1 -
E
' % - *)K - 6K
0 + %
- $K
+ %
- 7K
0 % )
- AK
0 % &
+
' ) - * & * * * %
-
& ' - % * * * * % & #+ H&
! *) % , , 4 K
K ? C A ?
K ? ? G L K ? 6$
K ? 6$ ? B ? 6B K ? ? $ 67 ?
0 + + , & ' - * , 4 *)K
)
' 7 A 6 ? 6
?
' $ '7 A ? $ A ? $
?
' A A ? A
?
?
?
' A 7 '7 7 ? ' A 7 7 ? 7
' A 6 7 '7 A ? ' A 6 7 A ? 6
. ! ' ! - * , 4 * , ) - ) , , * - * , 4 &
"
- * , 4 *
!
) , ) % , &
* , 4 *
&
*
)
, & ' 4 *)K
- . . #/ 0
EE
,K
!
* 4 *) K
?
? $ $ ? 6 $ 7 A B ½ ? ? 6 $ 7 A
?
B&$6 B&$$
= )
"!
' ,
$
? 6 $ 7 A B
? 6 $ 7 A
B&$6 B&$$ , 4 7&7 O 7&6$&
! , B&$6& - * , 4 * , )
6 % ? ,
0 + * ' A * B&6H
B&6G& ! - * , 4 * ,
7&7 6& / D
4
4 7&7&
- * , 4 * , $
% , ) - 6 %
?
, )
+ * '
A * B&6H B&6G& ! - * , 4 * ,
4 7&A $& /
7&A& )
O
4
4
7&B O 7&L & D
- * , 4 * , 6 ? , )
%
0 + * ' B C *
B&6G B&$E&
! - * , 4 * ,
4 7&G 6& /
O
4 7&G&
4 7&6E O 7&6$&
= * *) ) , &
! K ' , $K ,
$K ' , ) %)K 6& *%+ $& / , )% 7& A& B& C&
-
* , 4 *
' A * B&6H B&6G>
% % "%
>
- 1 - L&
-
H&
* , 4 *
E
' B C * B&6G B&$E>
% 6E& %> 66& % G&
>
7 8$%'%" #+ ) ) K !"# L&E $FCEEE 6&6&E #Q# A&C& 6$ ) 0 ) * & ' * * 7EE $B EEE &
+ )
* & ! + ) *
!"# L&E&
: 0 4 ) 4
1 0 ) 4 ) 4 2 2 2 2 M1 ) ,
*
* $FCEEE
!"# ,
#Q#& ' 4 ) + & , * , ) ) * , * ) * , * * , & , ) * ,
)
D +
* *) *K
0 +
>
> 5
>
0
? ? % 6 5 ;?< * + $ 5 ;? < * 0 + >
6 0 % * * & ' * * !"# L&E *)K E7BA7E6 M E6EB$BB )
3
>
$ 3
M E7$77C
$
M EHB$6HL
A +
* > * + && *
* & ' * ) , *
* * , * 5$68 5$$8 & Æ * *
;'
! ' $ 6! !' 8
?
ED
&
' , 4 , * , * , > * +
0 + *
&
' * * , + * % * , ) 7EI&
* ) D & B *
!"# ) * H7I * ,
90
16000 solid line --- estimated cost
80
solid line --- estimated cost +
+
Cost (Elapse Time in Sec.)
+
50
+
++
40
+
+ + + +
+
30 +
+
+
++
0
0
0.2
0.4
+
10000 8000 6000
+
+ 20 ++ + + ++ + + + + + + + + 10 + + ++++++ + + + ++ +++ + + ++ + ++++ + ++ + ++++ + ++ ++++
+
12000
+
60
dotted line --- observed cost
+ +
70
Cost (Elapse Time in Sec.)
14000
++
dotted line --- observed cost
4000 +
+
+
+
+
+
+
+ ++
+ +
2000 +
0.6
0.8
1
1.2
1.4
1.6
1.8
+ ++ + + ++++ ++ + + + + + + ++++++ 0 +++++ +
0
2
4000
6000
8000
10000
12000
14000
Result Table Cardinality
@( =# # 2&# ; )
2000
x10 4
Result Table Cardinality
+
+ +
@( C =# # 2&#
21* 0= D
; )
21* 0= D
) 7EI& * * * 4 , 0 ) 4 & D + * ) ) * *
!"# ) )
* CH&BI * )
, ) * *
& ' ) *
K
, $ #!$ , - . $ !/ $ .. ? #! $ . $0 00 . ' 20 1 1 0 $1 .. - ! ! 20 1 ? , $ #!$ , - . $ !/ $ .. #! $ . $0 00 . ' 20 1 0 1 0 $1 .. - ! ! 20 1 ?
' &
) * * *
&
'
- . . #/ 0
EB
;& B ! 3 ; % ( A 0 . 4 = ) & 35 / 3 9 3 8 @ 4 * 5 B ) & 78 !'" ">%!
" $ ' ! (> ( (( (# (& (8
- . . #/ 0
3 5 @ 4 0 A *4 D ; B. B ; B ) &. 78 ? !!! 8!!%" > ) B B B ) ' 34 35 ! !'& (8"%$" * . ) 7 !!'9 '#%( > 2 ) ;;& 3 ' % $ 33 3 -; !!( %($ 2 ./ 0 B = B 3 2 0 % #%# 2 ./ 0 = B ) = 3999 35 9 A 3E @ !!& &&%8# 2 ./ 0 ? B B = ) &> 3999?' - 35 A, 1 !!& ("#%$( 2 *; , =; ; B ; ) @ 3999 35 9 * @ (>>> & #%(&