ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt

ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt

ID:58064426

大?。?93.00 KB

頁(yè)數(shù):71頁(yè)

時(shí)間:2020-09-04

ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt_第1頁(yè)
ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt_第2頁(yè)
ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt_第3頁(yè)
ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt_第4頁(yè)
ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt_第5頁(yè)
資源描述:

《ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu)內(nèi)容安排第一部分:背景知識(shí)第二部分:SQL調(diào)優(yōu)第三部分:工具介紹第一部分背景知識(shí)執(zhí)行計(jì)劃的相關(guān)概念Rowid的概念rowid是一個(gè)偽列,既然是偽列,那么這個(gè)列就不是用戶定義,而是系統(tǒng)自己給加上的。對(duì)每個(gè)表都有一個(gè)rowid的偽列,但是表中并不物理存儲(chǔ)ROWID列的值。不過(guò)你可以像使用其它列那樣使用它,但是不能刪除改列,也不能對(duì)該列的值進(jìn)行修改、插入。一旦一行數(shù)據(jù)插入數(shù)據(jù)庫(kù),則rowid在該行的生命周期內(nèi)是唯一的,即即使該行產(chǎn)生行遷移,行的rowid也不會(huì)改變。RecursiveSQL概念有時(shí)為了

2、執(zhí)行用戶發(fā)出的一個(gè)sql語(yǔ)句,Oracle必須執(zhí)行一些額外的語(yǔ)句,我們將這些額外的語(yǔ)句稱之為‘recursivecalls’或‘recursiveSQLstatements’。如當(dāng)一個(gè)DDL語(yǔ)句發(fā)出后,ORACLE總是隱含的發(fā)出一些recursiveSQL語(yǔ)句,來(lái)修改數(shù)據(jù)字典信息,以便用戶可以成功的執(zhí)行該DDL語(yǔ)句。當(dāng)需要的數(shù)據(jù)字典信息沒(méi)有在共享內(nèi)存中時(shí),經(jīng)常會(huì)發(fā)生Recursivecalls,這些Recursivecalls會(huì)將數(shù)據(jù)字典信息從硬盤讀入內(nèi)存中。用戶不比關(guān)心這些recursiveSQL語(yǔ)句的執(zhí)行情況,在需要的時(shí)候

3、,ORACLE會(huì)自動(dòng)的在內(nèi)部執(zhí)行這些語(yǔ)句。當(dāng)然DML語(yǔ)句也都可能引起recursiveSQL。簡(jiǎn)單的說(shuō),我們可以將觸發(fā)器視為recursiveSQL。RowSourceandPredicateRowSource(行源):用在查詢中,由上一操作返回的符合條件的行的集合,即可以是表的全部行數(shù)據(jù)的集合;也可以是表的部分行數(shù)據(jù)的集合;也可以為對(duì)上2個(gè)rowsource進(jìn)行連接操作(如join連接)后得到的行數(shù)據(jù)集合。Predicate(謂詞):一個(gè)查詢中的WHERE限制條件DrivingTableDrivingTable(驅(qū)動(dòng)表):該

4、表又稱為外層表(OUTERTABLE)。這個(gè)概念用于嵌套與HASH連接中。如果該rowsource返回較多的行數(shù)據(jù),則對(duì)所有的后續(xù)操作有負(fù)面影響。注意此處雖然翻譯為驅(qū)動(dòng)表,但實(shí)際上翻譯為驅(qū)動(dòng)行源(drivingrowsource)更為確切。一般說(shuō)來(lái),是應(yīng)用查詢的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表,所以如果一個(gè)大表在WHERE條件有有限制條件(如等值限制),則該大表作為驅(qū)動(dòng)表也是合適的,所以并不是只有較小的表可以作為驅(qū)動(dòng)表,正確說(shuō)法應(yīng)該為應(yīng)用查詢的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表。在執(zhí)行計(jì)劃中,應(yīng)該為靠上的那個(gè)rows

5、ource,后面會(huì)給出具體說(shuō)明。ProbedTableProbedTable(被探查表):該表又稱為內(nèi)層表(INNERTABLE)。在我們從驅(qū)動(dòng)表中得到具體一行的數(shù)據(jù)后,在該表中尋找符合連接條件的行。所以該表應(yīng)當(dāng)為大表(實(shí)際上應(yīng)該為返回較大rowsource的表)且相應(yīng)的列上應(yīng)該有索引。組合索引(concatenatedindex)由多個(gè)列構(gòu)成的索引,如createindexidx_emponemp(col1,col2,col3,……),則我們稱idx_emp索引為組合索引。在組合索引中有一個(gè)重要的概念:引導(dǎo)列(leading

6、column),在上面的例子中,col1列為引導(dǎo)列。當(dāng)我們進(jìn)行查詢時(shí)可以使用”wherecol1=?”,也可以使用”wherecol1=?andcol2=?”,這樣的限制條件都會(huì)使用索引,但是”wherecol2=?”查詢就不會(huì)使用該索引。所以限制條件中包含先導(dǎo)列時(shí),該限制條件才會(huì)使用該組合索引??蛇x擇性(selectivity)比較一下列中唯一鍵的數(shù)量和表中的行數(shù),就可以判斷該列的可選擇性。如果該列的”唯一鍵的數(shù)量/表中的行數(shù)”的比值越接近1,則該列的可選擇性越高,該列就越適合創(chuàng)建索引,同樣索引的可選擇性也越高。在可選擇性高

7、的列上進(jìn)行查詢時(shí),返回的數(shù)據(jù)就較少,比較適合使用索引查詢。oracle訪問(wèn)數(shù)據(jù)的存取方法全表掃描(FullTableScans,FTS)通過(guò)ROWID的表存取(TableAccessbyROWID)索引掃描(IndexScan)索引掃描(IndexScan)索引唯一掃描(indexuniquescan)索引范圍掃描(indexrangescan)索引全掃描(indexfullscan)索引快速掃描(indexfastfullscan)表訪問(wèn)方式全表掃描:讀取表中每一條記錄,順序讀取;散列獲?。菏褂梅?hào)散列主鍵來(lái)為帶有匹配散列值

8、表中的記錄創(chuàng)建ROWID;ROWID訪問(wèn):通過(guò)指定的ROWID的方式在表中選定一個(gè)單獨(dú)的記錄;是訪問(wèn)記錄的最快方式;表之間的連接rowsource(表)之間的連接順序?qū)τ诓樵兊男视蟹浅4蟮挠绊憽Mㄟ^(guò)首先存取特定的表,即將該表作為驅(qū)動(dòng)表,這樣可以先應(yīng)用某些限制條件,從而得到一

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。