1/30/2012
1
Ti ưu hóa câu truy vnTi ưu hóa câu truy vn
Ng nNg n
HngHng
PhươngPhương
1
Ng
uy
nNg
uy
n
HngHng
PhươngPhương
phuongnh@soict.hut.edu.vnphuongnh@soict.hut.edu.vn
http://is.hut.edu.vn/~phuongnhhttp://is.hut.edu.vn/~phuongnh
BBmônmôn HHthngthng thôngthông tintin
VinVinCôngCông nghnghthôngthông tin tin và TruynTruyn thôngthông
ĐạiĐạihchcBáchBách KhoaKhoa NiNi
Ni dungNi dung
•Tng quan v x lý truy vn
•Ti ưu hóa các biu thc đại s quan
h
NHP
2
Tng quan v x lý truy vnTng quan v x lý truy vn
•X mttruyvnbaogm3
bước chính:
PhântíchvàBiêndch câu truy vn:
Trong bướcnày,hthng phidch câu
t
t
d
ô
b
NHP
3
t
ruy v
n
t
d
ng ng
ô
nng
b
ccao
thành mtngônngbiudindllu
bên trong để máy tính có ththao tác
trên đó. Mtbiudinbêntrongthích
hpvàhtrcho bướctiưuhóatiếp
theo biudinbng ngôn ngữđis
quan h
Tng quan v x lý truy vn (tiTng quan v x lý truy vn (tiếp)ếp)
–Tiưuhóacâutruyvn: Mctiêucabước
tiưu hóa chnramtkếhoch thchin
câu truy vn chi phí thpnht.
Để thchinđượcđiunày,trướctiêntacnbiếnđổi
1biuthcĐSQH đầu vào thành mtbiuthc
ĐSQH tương đương nhưng có thx được 1 cách
NHP
4
hiuqu ít tnkémhơn. Bướcconđầutiênnày
đượcgilàtiưuhóađạis.
•Tiếptheođó, ta cnphiđặctcác thuttoánđặc
bittiếnhànhthcthicácphéptoán,chn1chdn
cthnào đóđể sdng.
•Các dliuthng vCSDL sgiúp ta trong quá
trình xem xét lachn. dnhư:
Tng quan v x lý truy vn (tiTng quan v x lý truy vn (tiếp)ếp)
–Sbtrong quan h
–Kíchthướccamtb
–Skhi(block)chacácbcaquanh
–Sbcaquanh mtkhicóthcha
–Các thông tin vcơchếtruy nhp, chdntrên
quan h
Chi
phí
cho
ic
thc
hin
mt
t
n
được
NHP
5
Chi
phí
cho
v
ic
thc
hin
mt
t
ruy v
n
được
đobichiphísdng tài nguyên nhưvic
truy cpđĩa, thigian CPUdùngđể thc
hinmttruyvn.
•Trong chương này, chúng ta stp trung vào
vicđánh giá các biuthcđạisquan h
chkhông đivàochitiếtvictínhtoánchi
phí cho victhchinđánh giá mttruy
vn.
Tng quan v x lý truy vn (tiTng quan v x lý truy vn (tiếp)ếp)
–Thchinđánh giá truy vn:Tmtkế
hoch thchincóđưcdoTrìnhtiưuhóa
cung cp, hthng stiếnhànhthchincác
thao tác trên dliu trong CSDL đưaracâu
trli cho truy vnđó.
NHP
6
Truy vaán ñaàu vaøo Bieåu thöùc ÑSQH
Keá hoaïch thöïc hieänCaâu tra û lôøi tr uy vaán
Bie â n d òch
truy vaán
Toái öu hoùa
truy vaán
Th ö ï c h i n
tìm kieám dl
CSDL
Thoáng keâ veà dl
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
2
Đánh giá biu thc ĐSQHĐánh giá biu thc ĐSQH
•Sau bướcphântíchvàbiêndch, ta
mttruyvnđượcbiudinbng mt
biuthcđạisquan hbao gm
nhiuphéptoánvàtácđộng lên nhiu
quan
h
khác
nhau
Ta
s
phi
tiến
NHP
7
quan
h
khác
nhau
.
Ta
s
phi
tiến
hành đánh giá biuthcnày.Có2
hướng tiếpcnđể thc thi quá trình
đánh giá biuthcĐSQH:
–Vtcht hóa (Materialize)
Đường ng (Pipeline)
Đánh giá biu thc ĐSQH (tiếp)Đánh giá biu thc ĐSQH (tiếp)
•Vtchthóa:Trong cách tiếpcnnàythì
ta lnlượtđánhgiácácphéptoántheo
mtthtthích hp. Kếtqucavic
đánh giá miphéptoánsẽđưclưutrong
mtquanhtrung gian tmthiđể s
dng làm đầu vào cho các phép toán tiếp
theo
NHP
8
theo
.
Đimbtlicacáchtiếpcnnàylàvic
cnthiếtphixâydng các quan htrung
gian tmthinhtlàkhicácquanhnày
thường phiđượcghirađĩa(trkhi chúng
kích thướcrtnh). vicđọcvàghi
ra đĩa chi phí khá ln.
Đánh giá biu thc ĐSQH (tiếp)Đánh giá biu thc ĐSQH (tiếp)
Đường ng: Chúng ta thcithinhiuqu
đánh giá truy vnbng cách làm gimbts
lượng các quan htrung gian tmthiđượcto
ra. Điunàycóthểđtđượcnhvickếthpmt
vài phép toán quan hvào mtđưng ng ca
các phép toán. Trong đưng ng thì kếtquca
mt
phép
toán
đưc
chuyn
trc
tiếp
cho
phép
NHP
9
mt
phép
toán
được
chuyn
trc
tiếp
cho
phép
toán tiếp theo mà không cnphilưulitrong
quan htrung gian.
•Rõràng,cáchtiếpcnthhai shnchếđưc
nhượcđimcacáchtiếpcnđầutiên,nhưng
nhng trường hp, ta btbucphivtchthóa
chkhông dùng đường ng được.
Đánh giá biu thc ĐSQH (tiếp)Đánh giá biu thc ĐSQH (tiếp)
•Víd: Chúng ta mtbiuthcđạisquan h
gm2phéptoán:kếtnivàchiếu.
Trong cách tiếpcnvtchthóa,xutphátt
phép toán mcthpnhtlàphépkếtnit
nhiên, kếtqucaphépkếtninàysẽđưclưu
trong mtquanhtrung gian. Sau đó,đọct
qan
h
tng
gian
để
tiến
hành
chiế
l
kết
NHP
10
q
u
an
h
t
ru
ng
gian
y
để
tiến
hành
chiế
u
l
y
kết
qumong mun.
Trong cách tiếpcnđường ng, khi mtbộđưc
sinh ra trong phép kếtni2quanh,bnày s
được chuyntrctiếpđếnphépchiếuđể x
kếtquảđưcghivàoquanhệđu ra. Quan h
kếtqusẽđưctolpmtcáchtrctiếp.
Ti ưu hóa các biu thc ĐSQHTi ưu hóa các biu thc ĐSQH
•Mctiêulàtchclitrìnhtthchincác
phép toán trong biuthcđể gimchiphí
thchinđánh g biuthcđó.
Trong quá trình tiưuhóa,tabiudinmt
biuthcĐSQH dướidng mtcâytoánt.
Trong cây thì các nút các quan h
mt
trong
biu
thc
các
nút
trong
các
NHP
11
mt
trong
biu
thc
,
các
nút
trong
các
phép toán trong biuthc
•Víd:Đưa ra tên hãng cung ng mthàng
'P1':
Select sname From S, SP Where S.sid =
SP.sid And pid = 'P1'
•BiuthcĐSQH tương ng là?
Cây toán ttương ng là?
Các chiến lược ti ưu tng quátCác chiến lược ti ưu tng quát
1. Đẩyphépchnvàphépchiếuxung thchin
smnhtcóth: vì hai phép toán này giúp làm
gimkíchthướccaquanhtrướckhithchin
các phép toán 2 ngôi
2. Nhóm dãy các phép chnvàchiếu: Sdng chiến
lượcnàynếunhư mtdãycácphépchnhoc
dãy
các
phép
chiến
trên
cùng
mt
quan
h
NHP
12
dãy
các
phép
chiến
trên
cùng
mt
quan
h
3. KếthpphépchnvàtíchĐề các thành phép kết
ni: NếukếtqucamtphéptíchĐề các đối
sca1phépchncóđiukinchnlàphépso
sánh giacácthuctínhtrên2quanhtham gia
tích Đề các thì ta nên kếthp 2 phép toán thành
phép kếtni.
4. Tìm các biuthcconchungtrongbiuthcđại
squan hệđểđánh giá chmtln
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
3
Các chiến lược ti ưu tng quát (tiếp)Các chiến lược ti ưu tng quát (tiếp)
5. Xác định các phép toán thểđưcđưa
vào đường ng thchinđánh g
chúng theo đường ng
6. X các tpdliutrướckhitiếnhành
tính toán: Tolpchdnhayspxếptp
dliucóthgóp phnlàmgimchiphí
ca
các
phép
tính
trung
gian
NHP
13
ca
các
phép
tính
trung
gian
7. Ướclượng chi phí lachnthtthc
hin: Do vimicâutruyvncóth
nhiucáchkhácnhauđể thchin, vi
vicướng lượng chi phí (sphép tính, tài
nguyên sdng, dung tích bnh,thi
gian thchin ..) ta thchncáchđánh
giá biuthcĐSQH chi phí nhnht.
Các phép biến đổi tương đương Các phép biến đổi tương đương
biu thc biu thc ĐSQHĐSQH
•HaibiuthcĐSQH E1 E2 tương đương
nếu chúng cho cùng mtkếtqukhi áp
dng trên cùng mttp các quan h
•Trongphn này, ta các hiudng sau:
à
á
NHP
14
–E
1,E
2,E
3,…l
à
c
á
cbi
uth
cđạis
quan h
–F
1,F
2,F
3,…làcácđiukinchnhoclàcác
điukinkếtni
–X
1,X
2,…Y,Z,U
1,U
2,…làcáctpthuctính
Các phép biến đổi tương đương Các phép biến đổi tương đương
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
1. Quy tckếthpcaphéptíchĐề các kếtni
)()(
)*(**)*(
)()(
3
2
2
1
13
2
2
1
1
321321
321321
EEEEEE
EEEEEE
EEEEEE
F
F
F
F

NHP
15
•Quitcnàysdng cho chiếnlượcs7. Tht
thchincácphépkếtnihaytíchĐề các rt
quan trng kích thướccaquanhtrung gian
thrtlnnếu không cân nhck.Lachn
thtthchin các phép toán này thì tùy thuc
vào kích thướcca các quan htham gia phép
toán cngnghĩacaquanh(mi liên h)
2
1
2
1
F
F
F
F
Các phép biến đ
i tươn
g
đươn
g
Các phép biến đ
i tươn
g
đươn
g
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
VD: S* SP * P thểđưcthchintheo
3thtnhưsau
1)(S*SP)*P
2)(S*P)*SP
3)S*(SP*P)
Xét
th
hĩ
S
P
khô
kết
i
NHP
16
Xét
th
eo ng
ng
hĩ
a
S
,
P
khô
ng
kết
n
i
đượcnên(1)và(3)làtthơn(2).Xét
vkích thướcthì(3)tthơn(1)vìScó
4thuc tính còn P 3 thuc tính, tuy
nhiên, cũng còn tùy thucvàolc
lượng ca2quanhSvàPna
Các phép biến đổi tương đương Các phép biến đổi tương đương
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
2. Quy tc giao hoán trong phép tích Đề
các và kết ni
1221
1221
1221
**
EEEE
EEEE
EEEE
FF 
NHP
17
3. Quy tc đối vi dãy các phép chiếu
4. Quy tc đối vi dãy các phép chn
n
XXXX
XXX
EE
n
...
)()...)(...(
21
121
)()...)(....( ...2121 EE FnFFFnFF
Các phép biến đổi tươn
g
đươn
g
Các phép biến đổi tươn
g
đươn
g
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
5. Quy tc giao hoán phép chn
và phép chiếu
Q tc nà áp d ng khi F là đi
))(())(( EE XFFX
NHP
18
Q
uy
tc nà
y
áp d
ng khi F là đi
u
kin xác định được trên tp thuc
tính X. Tng quát hơn ta có: )))((())(( EE XYFXFX
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
4
Các phép biến đổi tươn
g
đươn
g
Các phép biến đổi tươn
g
đươn
g
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
6. Quy tc đối vi phép chn và phép
tích Đề các
Ta ký hiu:
–E
1(U1) có nghĩa là biu thc E1 xác định trên tp thuc
tính U1
–F
1(U1) có nghĩa là điu kin chn F1 xác định trên tp
thuc tính U
1
NHP
19
thuc tính U
1
–Quy tc biến đổi liên quan đến phép chn và tích Đề
các được phát biu như sau:
•tương đương vi:
–trong trường hp F = F1(U1)
–trong trường hp F = F1(U1)
F2(U2)
–trong trường hp F = F1(U1)
F2(U1U2)
))()(( 2211 UEUE
F
211 )( EE
F
)()( 2211 EE FF
))(( 2112 EE
FF
Các phép biến đổi tươn
g
đươn
g
Các phép biến đổi tươn
g
đươn
g
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
7. Quy tc đối vi phép chn và
phép hp:
8
Quy tc đối vi phép chn và
)()()( 2121 EEEE FFF
NHP
20
8
.
Quy tc đối vi phép chn và
phép tr:
)()()( 2121 EEEE FFF
Các phép biến đổi tươn
g
đươn
g
Các phép biến đổi tươn
g
đươn
g
biu thc biu thc ĐSQHĐSQH (ti(tiếp)ếp)
9. Quy tc đối vi phép chiếu và tích Đề
các:
21
212211
,,
)()())()((
UZUYYZX
EEUEUE ZYX
NHP
21
10.Quy tc đối vi phép chiếu và phép
hp:
)()()( 2121 EEEE XXX
VVí dí d
Tìm tên hãng cung ng ít nht1mt
hàng màu đỏ hocmàuxanh
SELECTsnameFROMS,P,SP
WHERE S.sid = SP.sid AND P.pid = SP.pid
AND
(colour
=
‘Red’
OR
colour
=
‘Green
)
;
NHP
22
AND
(colour
=
Red
OR
colour
=
Green )
;
•Biuthcđạisquan htương đương vi
câu truy vntrênlà:
))(( )'''Re'(.... PSPS
GreencolourdcolourpidSPpidPsidSPsidSsname
NHP
23
Li hay ý đẹpLi hay ý đẹp
"Phm cách chân chính caconngườilà
trong cách hsng chkhông phicái h
"
NHP
24
Blackie
CuuDuongThanCong.com https://fb.com/tailieudientucntt