亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

通過分析SQL語句的執行計劃優化SQL(五)

2024-07-21 02:45:07
字體:
來源:轉載
供稿:網友
Rowid的概念:
rowid是一個偽列,既然是偽列,那么這個列就不是用戶定義,而是系統自己給加上的。對每個表都有一個rowid的偽列,但是表中并不物理存儲ROWID列的值。不過你可以像使用其它列那樣使用它,但是不能刪除改列,也不能對該列的值進行修改、插入。一旦一行數據插入數據庫,則rowid在該行的生命周期內是唯一的,即即使該行產生行遷移,行的rowid也不會改變。

為什么使用ROWID
rowid對訪問一個表中的給定的行提供了最快的訪問方法,通過ROWID可以直接定位到相應的數據塊上,然后將其讀到內存。我們創建一個索引時,該索引不但存儲索引列的值,而且也存儲索引值所對應的行的ROWID,這樣我們通過索引快速找到相應行的ROWID后,通過該ROWID,就可以迅速將數據查詢出來。這也就是我們使用索引查詢時,速度比較快的原因。

在Oracle8以前的版本中,ROWID由FILE 、BLOCK、ROW NUMBER構成。隨著oracle8中對象概念的擴展,ROWID發生了變化,ROWID由OBJECT、FILE、BLOCK、ROW NUMBER構成。利用DBMS_ROWID可以將rowid分解成上述的各部分,也可以將上述的各部分組成一個有效的rowid。

Recursive SQL概念
有時為了執行用戶發出的一個sql語句,Oracle必須執行一些額外的語句,我們將這些額外的語句稱之為'recursive calls'或'recursive SQL statements'。如當一個DDL語句發出后,ORACLE總是隱含的發出一些recursive SQL語句,來修改數據字典信息,以便用戶可以成功的執行該DDL語句。當需要的數據字典信息沒有在共享內存中時,經常會發生Recursive calls,這些Recursive calls會將數據字典信息從硬盤讀入內存中。用戶不比關心這些recursive SQL語句的執行情況,在需要的時候,ORACLE會自動的在內部執行這些語句。當然DML語句與SELECT都可能引起recursive SQL。簡單的說,我們可以將觸發器視為recursive SQL。

Row Source(行源)
用在查詢中,由上一操作返回的符合條件的行的集合,即可以是表的全部行數據的集合;也可以是表的部分行數據的集合;也可以為對上2個row source進行連接操作(如join連接)后得到的行數據集合。

PRedicate(謂詞)
一個查詢中的WHERE限制條件

Driving Table(驅動表)
該表又稱為外層表(OUTER TABLE)。這個概念用于嵌套與HASH連接中。如果該row source返回較多的行數據,則對所有的后續操作有負面影響。注意此處雖然翻譯為驅動表,但實際上翻譯為驅動行源(driving row source)更為確切。一般說來,是應用查詢的限制條件后,返回較少行源的表作為驅動表,所以如果一個大表在WHERE條件有有限制條件(如等值限制),則該大表作為驅動表也是合適的,所以并不是只有較小的表可以作為驅動表,正確說法應該為應用查詢的限制條件后,返回較少行源的表作為驅動表。在執行計劃中,應該為靠上的那個row source,后面會給出具體說明。在我們后面的描述中,一般將該表稱為連接操作的row source 1。


Probed Table(被探查表)
該表又稱為內層表(INNER TABLE)。在我們從驅動表中得到具體一行的數據后,在該表中尋找符合連接條件的行。所以該表應當為大表(實際上應該為返回較大row source的表)且相應的列上應該有索引。在我們后面的描述中,一般將該表稱為連接操作的row source 2。

組合索引(concatenated index)
由多個列構成的索引,如create index idx_emp on emp(col1, col2, col3, ……),則我們稱idx_emp索引為組合索引。在組合索引中有一個重要的概念:引導列(leading column),在上面的例子中,col1列為引導列。當我們進行查詢時可以使用”where col1 = ? ”,也可以使用”where col1 = ? and col2 = ?”,這樣的限制條件都會使用索引,但是”where col2 = ? ”查詢就不會使用該索引。所以限制條件中包含先導列時,該限制條件才會使用該組合索引。

可選擇性(selectivity):
比較一下列中唯一鍵的數量和表中的行數,就可以判斷該列的可選擇性。如果該列的”唯一鍵的數量/表中的行數”的比值越接近1,則該列的可選擇性越高,該列就越適合創建索引,同樣索引的可選擇性也越高。在可選擇性高的列上進行查詢時,返回的數據就較少,比較適合使用索引查詢。

有了這些背景知識后就開始介紹執行計劃。為了執行語句,Oracle可能必須實現許多步驟。這些步驟中的每一步可能是從數據庫中物理檢索數據行,或者用某種方法準備數據行,供發出語句的用戶使用。Oracle用來執行語句的這些步驟的組合被稱之為執行計劃。執行計劃是SQL優化中最為復雜也是最為關鍵的部分,只有知道了ORACLE在內部到底是如何執行該SQL語句后,我們才能知道優化器選擇的執行計劃是否為最優的。執行計劃對于DBA來說,就象財務報表對于財務人員一樣重要。所以我們面臨的問題主要是:如何得到執行計劃;如何分析執行計劃,從而找出影響性能的主要問題。下面先從分析樹型執行計劃開始介紹,然后介紹如何得到執行計劃,再介紹如何分析執行計劃。

舉例:
這個例子顯示關于下面SQL語句的執行計劃。

SELECT ename, job, sal, dname
   FROM emp, dept
WHERE emp.deptno = derpt.deptno
   AND NOT EXISTS
     ( SELECT *
FROM salgrade
WHERE emp.sal BETWEEN losal AND hisal );
此語句查詢薪水不在任何建議薪水范圍內的所有雇員的名字,工作,薪水和部門名。


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lcyhjx/archive/2009/12/20/5044672.aspx
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本在线精品视频| 亚洲欧美日韩高清| 激情懂色av一区av二区av| 欧美激情精品久久久久久蜜臀| 成人中心免费视频| 成人国产精品色哟哟| 久热爱精品视频线路一| 国产欧美在线播放| 夜夜嗨av一区二区三区免费区| 亚洲一区制服诱惑| 国产日韩欧美在线视频观看| 日韩在线观看成人| 中文在线资源观看视频网站免费不卡| 中文字幕在线观看亚洲| 亚洲夜晚福利在线观看| 日韩av免费在线看| 国产精品欧美日韩一区二区| 亚洲人成网站色ww在线| 欧美亚洲另类视频| 色偷偷av一区二区三区| 亚洲国产精品久久| 4438全国成人免费| 欧美另类高清videos| 久久手机精品视频| 欧美激情国产高清| 7m精品福利视频导航| 亚洲午夜国产成人av电影男同| 中文字幕无线精品亚洲乱码一区| 日av在线播放中文不卡| 中文字幕亚洲综合久久筱田步美| 国内精品一区二区三区四区| 国产在线精品播放| 亚洲欧美中文日韩v在线观看| 日韩av在线网| 久久精品久久久久久| 麻豆一区二区在线观看| 国产精品网站视频| 欧美一区三区三区高中清蜜桃| 欧美夫妻性生活视频| 亚洲老板91色精品久久| 欧美亚洲视频一区二区| 日韩性生活视频| 国产精品444| 一区二区三区黄色| 成人免费直播live| 国产精品免费电影| 欧美一级黑人aaaaaaa做受| 欧美老少配视频| 精品国产鲁一鲁一区二区张丽| 亚洲天堂久久av| 欧美日韩亚洲一区二区| 一个人看的www久久| 中文字幕在线看视频国产欧美在线看完整| 欧美极品少妇xxxxⅹ免费视频| 欧美乱大交xxxxx另类电影| 97在线观看视频| 欧美大片在线看免费观看| 91成人在线观看国产| 国产精品丝袜久久久久久高清| 中文字幕精品av| 美女性感视频久久久| 亚洲国产成人久久| 欧美第一页在线| 91在线高清免费观看| 国产91热爆ts人妖在线| 亚洲另类激情图| 国产美女精品免费电影| 久久综合久久美利坚合众国| 狠狠躁18三区二区一区| 黑人精品xxx一区一二区| 色噜噜国产精品视频一区二区| 国产精品成人观看视频国产奇米| 欧美电影免费在线观看| 久久久久久久97| 国产精品18久久久久久首页狼| 欧美激情一区二区三区成人| 亚洲欧美日本伦理| 最近日韩中文字幕中文| 国产精品激情av电影在线观看| 波霸ol色综合久久| 久久人人爽人人| 欧美午夜视频在线观看| 国产视频自拍一区| 成人字幕网zmw| 国产精品久久久91| 伊人伊成久久人综合网小说| 日韩精品在线免费观看| 黑人巨大精品欧美一区二区一视频| 亚洲一区二区三区在线视频| 国产精品免费观看在线| 日韩中文字幕视频在线观看| 欧美日韩在线看| 国产精品久久久久免费a∨| 欧美激情亚洲激情| 91夜夜揉人人捏人人添红杏| 97在线观看视频国产| 国产精品色午夜在线观看| 国产美女久久久| 国产精品扒开腿做爽爽爽男男| 欧美精品午夜视频| 久久亚洲精品一区| 日韩中文字幕视频| 欧美日韩国产限制| 久久五月天色综合| 亚洲伊人成综合成人网| 欧美精品xxx| 欧美自拍大量在线观看| 午夜精品久久久久久99热| 欧美性在线观看| 欧美韩国理论所午夜片917电影| 精品香蕉在线观看视频一| 亚洲高清在线观看| 国产亚洲一区二区精品| 日韩av在线高清| 欧美精品18videos性欧美| 久久久久久久国产精品| 亚洲欧美一区二区三区久久| 欧美性资源免费| 久久露脸国产精品| 亚洲缚视频在线观看| 欧美黄色成人网| 日韩中文在线中文网在线观看| 国产精品海角社区在线观看| 国产精品69精品一区二区三区| 大伊人狠狠躁夜夜躁av一区| 热门国产精品亚洲第一区在线| 精品毛片三在线观看| 欧美一级bbbbb性bbbb喷潮片| 日韩毛片中文字幕| 国产亚洲美女精品久久久| 欧美午夜精品久久久久久人妖| 国产91在线高潮白浆在线观看| 97在线视频免费观看| 国产一区二区三区四区福利| 中文字幕在线精品| 一区二区三区www| 国产一区二区三区在线观看视频| 亚洲午夜未删减在线观看| 91亚洲精品视频| 91精品国产成人| 亚洲美女在线看| 国产一区二区精品丝袜| 国产精品久久久久aaaa九色| 欧美夜福利tv在线| 欧美综合一区第一页| 成人h片在线播放免费网站| 555www成人网| 久久久久亚洲精品| 亚洲色在线视频| 亚洲成av人片在线观看香蕉| 国产精品视频在线观看| 久久亚洲精品视频| 欧美黑人巨大xxx极品| 亚洲女人天堂视频| 久久精品影视伊人网| 精品视频在线播放| 国产精品爱久久久久久久| 久久不射热爱视频精品| 日韩av日韩在线观看| 国产精品美女久久久免费| 伊人久久男人天堂| 美乳少妇欧美精品| 亚洲色图av在线| 国产999精品久久久影片官网|