最近一直在跟Oracle打交道,從最初的一臉懵逼到現(xiàn)在的略有所知,也來總結(jié)一下自己最近所學(xué),不定時更新ing…
一:什么是Oracle執(zhí)行計劃?
執(zhí)行計劃是一條查詢語句在Oracle中的執(zhí)行過程或訪問路徑的描述
二:怎樣查看Oracle執(zhí)行計劃?
因為我一直用的PLSQL遠(yuǎn)程連接的公司數(shù)據(jù)庫,所以這里以PLSQL為例:
①:配置執(zhí)行計劃需要顯示的項:
工具 —> 首選項 —> 窗口類型 —> 計劃窗口 —> 根據(jù)需要配置要顯示在執(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í)行計劃
注:在PLSQL中使用SQL命令查看執(zhí)行計劃的話,某些SQL*PLUS命令PLSQL無法支持,比如SET AUTOTRACE ON
三:看懂Oracle執(zhí)行計劃