時(shí)間:2022-11-16 20:30:01 | 來(lái)源:信息時(shí)代
時(shí)間:2022-11-16 20:30:01 來(lái)源:信息時(shí)代
數(shù)據(jù)庫(kù)查詢優(yōu)化 : DBMS為一個(gè)查詢請(qǐng)求選擇較優(yōu)的查詢處理策略的過(guò)程,是關(guān)系數(shù)據(jù)庫(kù)的重要功能。關(guān)系數(shù)據(jù)庫(kù)的查詢優(yōu)化包括代數(shù)優(yōu)化和物理優(yōu)化兩部分。代數(shù)優(yōu)化的主要任務(wù)是根據(jù)關(guān)系代數(shù)的等價(jià)變換規(guī)則及一套啟發(fā)式規(guī)則,通過(guò)對(duì)查詢做等價(jià)變換,達(dá)到優(yōu)化查詢執(zhí)行的目的。物理優(yōu)化是根據(jù)數(shù)據(jù)字典中記載的各種統(tǒng)計(jì)信息和一套啟發(fā)式規(guī)則,選擇高效合理的操作算法或存取路徑,求得優(yōu)化的查詢計(jì)劃,達(dá)到查詢優(yōu)化的目標(biāo)。例如,有兩個(gè)關(guān)系模式: 圖書表BOOK和借閱表BR。圖書表記錄了每本圖書的編號(hào)、書名、作者、出版社等信息。借閱表記錄了圖書借閱的歷史信息,包括圖書編號(hào)、借閱人代碼、姓名、借閱時(shí)間等信息。如果想查詢“DB”一書所有借閱人的姓名,用SQL語(yǔ)言可以表達(dá)為:
SELECT BR.name
BFROM BR,BOOK
WHERE BR.bookno=BOOK.bookno
AND BOOK.bname='DB';
系統(tǒng)可以用多種等價(jià)的關(guān)系代數(shù)表達(dá)式來(lái)完成這一查詢,比如:
Q1=πname(σBR.bookno=BOOK.bookno^BOOK.bname='DB'(BR×BOOK))
Q2=πname(σBOOK.bname='DB'(BR⋈BOOK))
Q3=πname(BR⋈(σBOOK.bname='DB'(BOOK)))
雖然Q1、Q2、Q3是等價(jià)查詢,查詢結(jié)果一樣,但其查詢效率相差懸殊。把代數(shù)表達(dá)式Q2變換為Q3,即在有選擇和連接操作時(shí),先做選擇操作,這樣參加連接的元組數(shù)就可以大大減少,這是代數(shù)優(yōu)化。在Q3中,BOOK表的選擇操作算法有全表掃描和索引掃描兩種方法,經(jīng)過(guò)初步估算,索引掃描方法較優(yōu)。同樣對(duì)于BR和BOOK表的連接,利用BOOK表上的索引,采用index join代價(jià)也較小,這就是物理優(yōu)化。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。