最近一直在跟Oracle打交道,從最初的一臉懵逼到現(xiàn)在的略有所知,也來總結(jié)一下自己最近所學(xué),不定時更新ing…

 

一:什么是Oracle執(zhí)行計劃?

執(zhí)行計劃是一條查詢語句在Oracle中的執(zhí)行過程或訪問路徑的描述

 

 

二:怎樣查看Oracle執(zhí)行計劃?

因為我一直用的PLSQL遠(yuǎn)程連接的公司數(shù)據(jù)庫,所以這里以PLSQL為例:

①:配置執(zhí)行計劃需要顯示的項:

工具  —>  首選項 —>   窗口類型  —>  計劃窗口  —>  根據(jù)需要配置要顯示在執(zhí)行計劃中的列

執(zhí)行計劃配置

執(zhí)行計劃的常用列字段解釋:

基數(shù)(Rows):Oracle估計的當(dāng)前操作的返回結(jié)果集行數(shù)

字節(jié)(Bytes):執(zhí)行該步驟后返回的字節(jié)數(shù)

耗費(fèi)(COST)、CPU耗費(fèi):Oracle估計的該步驟的執(zhí)行成本,用于說明SQL執(zhí)行的代價,理論上越小越好(該值可能與實際有出入)

時間(Time):Oracle估計的當(dāng)前操作所需的時間

②:打開執(zhí)行計劃:

在SQL窗口執(zhí)行完一條select語句后按 F5 即可查看剛剛執(zhí)行的這條查詢語句的執(zhí)行計劃

執(zhí)行計劃查看

 

注:在PLSQL中使用SQL命令查看執(zhí)行計劃的話,某些SQL*PLUS命令PLSQL無法支持,比如SET AUTOTRACE ON

執(zhí)行計劃sql查看

 

 

 

三:看懂Oracle執(zhí)行計劃

看懂執(zhí)行計劃<