新聞中心
Oracle有很多值得學(xué)習(xí)的地方,這里我們主要介紹Oracle文檔,包括介紹RBO優(yōu)化器等方面。在Oracle文檔上說:對于RBO來說,以from 子句中從右到左的順序選擇驅(qū)動(dòng)表,即最右邊的表為第一個(gè)驅(qū)動(dòng)表,這是其英文原文:All things being equal RBO chooses the driving order by taking the tables in the FROM clause RIGHT to LEFT。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),長垣企業(yè)網(wǎng)站建設(shè),長垣品牌網(wǎng)站建設(shè),網(wǎng)站定制,長垣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,長垣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
不過,在我做的測試中,從來也沒有驗(yàn)證過這種說法是正確的。我認(rèn)為,即使在RBO中,也是有一套規(guī)則來決定使用哪種連接類型和哪個(gè)表作為驅(qū)動(dòng)表,在選擇時(shí)肯定會(huì)考慮當(dāng)前索引的情況,還可能會(huì)考慮where 中的限制條件,但是肯定是與where中限制條件的位置無關(guān)。
如果我創(chuàng)建3個(gè)表:
- create table A(col1 number(4,0),col2 number(4,0), col4 char(30));
- create table B(col1 number(4,0),col3 number(4,0), name_b char(30));
- create table C(col2 number(4,0),col3 number(4,0), name_c char(30));
- create index inx_col12A on a(col1,col2);
執(zhí)行查詢:
- select A.col4
- from B, A, C
- where B.col3 = 10
- and A.col1 = B.col1
- and A.col2 = C.col2
- and C.col3 = 5;
- Execution Plan
通過上面的這些例子,使我對Oracle文檔上的” All things being equal RBO chooses the driving order by taking the tables in the FROM clause RIGHT to LEFT”這句話持懷疑態(tài)度。此時(shí),我也不能使用hints來強(qiáng)制優(yōu)化器使用nested loop,如果使用了hints,這樣就自動(dòng)使用CBO優(yōu)化器,而不是RBO優(yōu)化器了。
分享題目:討論Oracle文檔學(xué)習(xí)經(jīng)驗(yàn)
文章分享:http://www.5511xx.com/article/djhjocj.html


咨詢
建站咨詢
