【正文】
RCE_DXZDJB a join ARMS_CFG_GZTS b on = and =to_Date(39。3000/12/3139。,39。yyyy/mm/dd39。) join ARMS_ORGAN_ENTRYID e on = and =39。1003339。 where = 39。139。 and 0 and to_date(39。1990/12/3139。,39。yyyy/mm/dd39。) and work_date(,get_date) = and work_date(sysdate,sysdate)=1 and =to_date(39。2010010139。,39。yyyymmdd39。)解釋計(jì)劃:這里為了好解釋,后面的紅色字體加了一個(gè)行號(hào)。對(duì)于這個(gè)解釋計(jì)劃如何看,哪一步先執(zhí)行哪一步后執(zhí)行,原則是最右邊最上面的先執(zhí)行。上面這個(gè)圖最右邊是第8行,對(duì)象名稱是idx_dqdh_dxzdjb,描述是index range scan。意思是索引掃描,再看他的上面7行,對(duì)象名稱是source_dxzdjb,這兩行合起就是查source_dxzdjb這張表,查詢方式是索引查詢。然后然后再看第6行是一個(gè)全表訪問(wèn),表名是arms_cfg_gzts,再看第5行,是一個(gè)嵌套循環(huán),也就是把source_dxzdjb與arms_cfg_gzts表作連接,source_dxzdjb表作為驅(qū)動(dòng)表。因?yàn)閛racle每次都只能是兩個(gè)表進(jìn)行連接,所以他把上面的兩張表連接后作為一個(gè)新的表(暫時(shí)這么說(shuō)吧)再與arms_organ_entryid這個(gè)表連接。我們可以看到目前這個(gè)sql的耗費(fèi)是很少的,也就是說(shuō)這個(gè)SQL執(zhí)行效率還可以。如果耗費(fèi)非常大的話就需要考慮進(jìn)行優(yōu)化。比如一個(gè)table access full的耗費(fèi)值非常大,我們可以考濾給他建索引。多表的話我們可以看看他選的驅(qū)動(dòng)表是否合理,驅(qū)動(dòng)表的選擇是結(jié)果集越少越好(并不是大表不能作驅(qū)動(dòng)表,如果大表有where條件限制查詢出來(lái)的結(jié)果集少也可以作驅(qū)動(dòng)表)。oracle會(huì)話Oracle會(huì)話也叫session,我們可以通pl/sql以sysdba身份登錄在工具224。會(huì)話中來(lái)查看,如下圖所示有時(shí)我們需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行還原,把原來(lái)的數(shù)據(jù)庫(kù)及用戶刪掉,有時(shí)會(huì)發(fā)現(xiàn)刪不掉,因?yàn)檫€有用戶連著數(shù)據(jù)庫(kù),我們就可以在這里把這些連接數(shù)據(jù)庫(kù)的用戶會(huì)話kill掉,選中一個(gè)會(huì)話右鍵kill;還有如果有用戶把一個(gè)表鎖定一直不釋放,我們可以通過(guò)這里選中某個(gè)會(huì)話看是哪一個(gè)會(huì)話鎖定了表,如果長(zhǎng)時(shí)間不釋放,我們也可以強(qiáng)制結(jié)束會(huì)話來(lái)釋放該表的鎖。12 / 12