ORACLE執(zhí)行計劃和SQL調優(yōu)_第1頁
ORACLE執(zhí)行計劃和SQL調優(yōu)_第2頁
ORACLE執(zhí)行計劃和SQL調優(yōu)_第3頁
ORACLE執(zhí)行計劃和SQL調優(yōu)_第4頁
ORACLE執(zhí)行計劃和SQL調優(yōu)_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、也不會會改變。RecursiveSQL概念有時為了了執(zhí)行用用戶發(fā)出出的一個個sql語句,Oracle必須執(zhí)執(zhí)行一些些額外的的語句,我們將將這些額額外的語語句稱之之為recursivecalls或recursiveSQL statements。如當當一個DDL語語句發(fā)出出后,ORACLE總總是隱含含的發(fā)出出一些recursiveSQL語句,來修改改數據字字典信息息,以便便用戶可可以成功功的執(zhí)行行該DDL語句句。當需需要的數數據字典典信息沒沒有在共共享內存存中時,經常會會發(fā)生Recursivecalls,這些Recursivecalls會會將數據據字典信信息從硬硬盤讀入入內存中中。用戶戶不比關關心

3、這些些recursive SQL語句句的執(zhí)行行情況,在需要要的時候候,ORACLE會自自動的在在內部執(zhí)執(zhí)行這些些語句。當然DML語語句也都都可能引引起recursiveSQL。簡單的的說,我我們可以以將觸發(fā)發(fā)器視為為recursive SQL。RowSource andPredicateRowSource(行源源):用用在查詢詢中,由由上一操操作返回回的符合合條件的的行的集集合,即即可以是是表的全全部行數數據的集集合;也也可以是是表的部部分行數數據的集集合;也也可以為為對上2個rowsource進進行連接接操作(如join連連接)后后得到的的行數據據集合。Predicate(謂詞):一個個查詢

4、中中的WHERE限制條條件Driving TableDriving Table(驅動動表):該表又又稱為外外層表(OUTERTABLE)。這個個概念用用于嵌套套與HASH連連接中。如果該該row source返回回較多的的行數據據,則對對所有的的后續(xù)操操作有負負面影響響。注意意此處雖雖然翻譯譯為驅動動表,但但實際上上翻譯為為驅動行行源(driving rowsource)更為確確切。一一般說來來,是應應用查詢詢的限制制條件后后,返回回較少行行源的表表作為驅驅動表,所以如如果一個個大表在在WHERE條條件有有有限制條條件(如如等值限限制),則該大大表作為為驅動表表也是合合適的,所以并并不是只只有

5、較小小的表可可以作為為驅動表表,正確確說法應應該為應應用查詢詢的限制制條件后后,返回回較少行行源的表表作為驅驅動表。在執(zhí)行行計劃中中,應該該為靠上上的那個個row source,后后面會給給出具體體說明。ProbedTableProbedTable(被探查查表):該表又又稱為內內層表(INNERTABLE)。在我我們從驅驅動表中中得到具具體一行行的數據據后,在在該表中中尋找符符合連接接條件的的行。所所以該表表應當為為大表(實際上上應該為為返回較較大rowsource的的表)且且相應的的列上應應該有索索引。組合索引引(concatenatedindex)由多個列列構成的的索引,如createin

6、dexidx_emp on emp(col1,col2,col3,),則我們們稱idx_emp索索引為組組合索引引。在組組合索引引中有一一個重要要的概念念:引導導列(leading column),在上面面的例子子中,col1列為引引導列。當我們們進行查查詢時可可以使用用”where col1=? ”,也可以以使用”wherecol1= ?and col2=?”,這這樣的限限制條件件都會使使用索引引,但是是”where col2=? ”查查詢就不不會使用用該索引引。所以以限制條條件中包包含先導導列時,該限制制條件才才會使用用該組合合索引??蛇x擇性性(selectivity)比較一下下列中唯唯一

7、鍵的的數量和和表中的的行數,就可以以判斷該該列的可可選擇性性。如果果該列的的”唯一一鍵的數數量/表表中的行行數”的的比值越越接近1,則該該列的可可選擇性性越高,該列就就越適合合創(chuàng)建索索引,同同樣索引引的可選選擇性也也越高。在可選選擇性高高的列上上進行查查詢時,返回的的數據就就較少,比較適適合使用用索引查查詢。oracle訪訪問數據據的存取取方法全表掃描描(FullTableScans, FTS)通過ROWID的表存存取(TableAccess by ROWID )索引掃描描(Index Scan)索引掃描描(Index Scan)索引唯一一掃描(indexunique scan)索引范圍圍掃描

8、(indexrangescan)索引全掃掃描(indexfull scan)索引快速速掃描(indexfastfull scan)表訪問方方式全表掃描描:讀取取表中每每一條記記錄,順順序讀取取;散列獲取?。菏褂糜梅柹⑸⒘兄麈I鍵來為帶帶有匹配配散列值值表中的的記錄創(chuàng)創(chuàng)建ROWID ;ROWID訪問問:通過過指定的的ROWID的的方式在在表中選選定一個個單獨的的記錄;是訪問問記錄的的最快方方式;表之間的的連接rowsource(表)之間的的連接順順序對于于查詢的的效率有有非常大大的影響響。通過過首先存存取特定定的表,即將該該表作為為驅動表表,這樣樣可以先先應用某某些限制制條件,從而得得到一個個較

9、小的的row source,使使連接的的效率較較高,這這也就是是我們常常說的要要先執(zhí)行行限制條條件的原原因。一一般是在在將表讀讀入內存存時,應應用where子句中中對該表表的限制制條件。SQL執(zhí)執(zhí)行的的步驟解析:安安全性檢檢查,語語法檢查查;創(chuàng)建:評評估多個個執(zhí)行計計劃,并并選擇一一個最優(yōu)優(yōu)的執(zhí)行行計劃;執(zhí)行:捆捆綁變量量,執(zhí)行行已經創(chuàng)創(chuàng)建的執(zhí)執(zhí)行計劃劃;獲取:獲獲取結果果集,進進行轉換換,排序序等;索引訪問問方式索引范圍圍掃描:指從索索引中讀讀取多個個rowid,是最常常見到的的方式;單個索引引掃描:指從索索引中讀讀取一個個單獨的的rowid;降序索引引范圍掃掃描:指指按降序序的方式式從索引

10、引中讀取取多個rowid;導致排序序的操作作Orderby子子句Groupby子子句Selectdistinct子子句Union或或 minus 操作作優(yōu)化器調調用sortmergejoin操操作創(chuàng)建索引引SQL優(yōu)優(yōu)化器概念:是是一個為為所有的的sql語句創(chuàng)創(chuàng)建執(zhí)行行計劃的的工具。目的:生生成最快快的,消消耗資源源最少的的執(zhí)行計計劃。兩種優(yōu)化化器:基基于規(guī)則則的優(yōu)化化器(RBO),基于于成本的的優(yōu)化器器(CBO)。優(yōu)化器模模式Rule 模式式:完全全基于數數據字典典生成執(zhí)執(zhí)行計劃劃;最古古老、比比較穩(wěn)定定;Choose模模式:默認的的優(yōu)化器器模式。根據統(tǒng)統(tǒng)計數據據的存在在與否確確定調用用哪一個

11、個優(yōu)化器器;First_rows 模式式:基于于成本的的優(yōu)化器器模式,以最快快的速度度返回記記錄;All_rows模模式:基基于成本本的優(yōu)化化器模式式,確保??傮w時時間最短短,使用用的資源源最??;設置優(yōu)化化器模式式的方法法Init.ora參數數 optimizer_mode =rule/choose/all_rows/first_rows;在會話層層使用altersession setoptimizer_goal=rule/choose/all_rows/first_rows;在SQL中添加加提示/*+rule/all_rows/first_rows */設置choose模式式時候,將根據據是

12、否存存在表或或索引的的統(tǒng)計資資料來決決定選擇擇RBO或CBO;第二部分分 SQL調調整SQL調調整的的目標去掉不必必要的大大表全表表掃描;緩存小表表全表掃掃描;盡量使用用主機變變量代替替直接量量,減少少SQL語句的的解析時時間;優(yōu)化索引引的使用用;優(yōu)化表連連接方法法;優(yōu)化子查查詢;常見可能能導致全全表掃描描的操作作使用null條條件的查查詢:wherexxxisnull;對沒有索索引的字字段查詢詢;帶有l(wèi)ike條條件的查查詢:wherexxxlike%x;帶有notequals條條件的查查詢:, !=,notin等等(除非非字段分分布不平平衡,而而且存在在字段矩矩形圖)內置函數數使索引引無效:

13、substr(),to_char()等;使用all_rows提示;使用parallel 提示示;基于RBO調調整設置RBO模式式的方法法Init.ora參數數 optimizer_mode =rule/choose;在會話層層使用altersession setoptimizer_goal=rule/choose;在SQL中添加加提示/*+ rule*/設置choose模式式時候,將根據據是否存存在表或或索引的的統(tǒng)計資資料來決決定選擇擇RBO或CBO;RBO特特性總是使用用索引(不識別別位圖索索引或基基于函數數的索引引)總是從驅驅動表開開始只有在不不可避免免的情況況下,才才使用全全表掃描描索引

14、選擇擇的隨機機特性基于RBO的調調整原則則驅動表的的設置:在RBO中,驅動表表是from子子句的最最后一個個表;驅驅動表應應該是返返回記錄錄最少的的那個表表;Where子句句設置:限制性性最強的的布爾表表達式放放在最底底層;添加基于于成本的的提示,來獲得得更快的的執(zhí)行計計劃;基于CBO調調整設置CBO模式式的方法法Init.ora參數數 optimizer_mode =all_rows/first_rows/choose;在會話層層使用altersession setoptimizer_goal=all_rows/first_rows/choose;在SQL中添加加提示/*+ hint*/設置

15、choose模式式時候,將根據據是否存存在表或或索引的的統(tǒng)計資資料來決決定選擇擇RBO或CBO;CBO特特性前提條件件:存在在表和索索引的統(tǒng)統(tǒng)計資料料;使用用analyzetable和和 analyzeindex命命令從從表或索索引中收收集統(tǒng)計計資料(表的記記錄平均均長度,記錄數數等);如果沒沒有現(xiàn)存存的統(tǒng)計計資料,將在sql運運行時收收集資料料,會大大大降低低性能;影響CBO執(zhí)行行計劃成成本評估估的初始始化參數數較多(optimizer_search_limit,optimizer_max_permutations,optimizer_index_caching,hash_area_size

16、,hash_join_enable,hash_multiblock_io_count,star_transformation_enable,optimizer_index_cost_adj等等)調整表連連接表連接方方法嵌套循環(huán)環(huán)連接(nested loopjoin):一個小小的內部部表和一一個外部部表。比比較內部部表的每每一條記記錄和外外部表的的每一條條記錄,返回滿滿足條件件的記錄錄;散列連接接(hashjoin):為較小小的表在在RAM創(chuàng)建散散列表(可以用用來從較較大的那那個表讀讀取記錄錄);排序合并并連接(sortmergejoin):使使用連接接字段將將兩個記記錄集排排序然后后合并;星型

17、連接接(starjoin):幾個小小型表(將組成成虛擬表表)和一一個大型型事實表表,然后后進行嵌嵌套循環(huán)環(huán)連接;表連接類類型等連接:標準連連接;froma,bwherea.f1=b.f1;oracle提供供nested loop、hashjoin、sortmerge三三種連接接方式;外部連接接:通通過在where子句句的等式式謂詞展展覽館放放置一個個()來實現(xiàn)現(xiàn);from a,bwherea.f1=b.f1(+),將包括括b表中中不匹配配的字段段;自連接:一個表表與自己己連接的的情況;fromemp a,emp bwherea.f1-b.f1 =10;經常常調用nestedloop連接接;表連

18、接類類型(續(xù)續(xù))反連接:指使用用包含notin或或notexists子子句的子子查詢進進行的連連接;默默認使用用嵌套循循環(huán)算法法;半連接:指在子子查詢中中使用in或exists子子句時進進行的操操作;表連接調調整原則則RBO只只能調用用nested loop和和mergesort連接接;hashjoin和star 連接接只能在在CBO中得到到;盡量不要要使用notin反反連接子子查詢,把它替替換成標標準等連連接,用用外連接接和where columnisnull子句刪刪除多余余的記錄錄;或者者盡量替替換成notexists子查詢詢,因為為它將調調用相關關聯(lián)的子子查詢;半連接子子查詢可可以重新新

19、書寫成成標準等等連接,用selectdistinct子句句刪除重重復的記記錄;表連接調調整原則則(續(xù))如果驅動動表較小小,可以以完全裝裝入hash_area_size內存中中,使用用散列連連接(hash join)速度比比嵌套循循環(huán)連接接(nestedloop)快;在兩個表表非常大大的情況況下,經經常使用用嵌套循循環(huán)連接接(nestedloop);生成大型型結果集集的查詢詢、不使使用where子句的的大表連連接或表表中無可可用索引引的查詢詢,經常常使用排排序合并并連接(srotmerge);對于多個個小的維維表和一一個大的的事實表表的情況況下(數數據倉庫庫),經經常使用用星型連連接(star)

20、;不同表連連接方法法的相對對速度星型連接接嵌套循環(huán)環(huán)連接散列連接接排序合并并連接連接速度度連接表中中記錄的的數目少多慢快調整SQL子查查詢子查詢類類型標準子查查詢:in和和 exists;反連接子子查詢:not in 和not exists;關聯(lián)子查查詢:指指在子查查詢內部部引用外外部數據據表;fromtable1awhere (selectfromtable2bWherea.f1 =b.f1);對于于外部數數據集的的每一條條記錄,都將重重新執(zhí)行行一次內內部子查查詢;非關聯(lián)子子查詢:指在子子查詢內內部不會會引用外外部的數數據表;fromtable1 awhere(select from tab

21、le2b );內部部子查詢詢只執(zhí)行行一次;子查詢調調整原則則只要可能能的話,盡可能能的避免免使用子子查詢,而用標標準的連連接操作作來代替替,這樣樣可以使使用提示示來更改改執(zhí)行計計劃;先考慮子子查詢的的合法性性,再考考慮進行行改寫;使用一個個關聯(lián)子子查詢時時,in與exists子句句的子查查詢的執(zhí)執(zhí)行計劃劃基本相相同;在外部查查詢返回回相對較較少的記記錄時,關聯(lián)子子查詢比比非關聯(lián)聯(lián)子查詢詢執(zhí)行得得更快;子查詢調調整原則則(續(xù))在內部子子查詢只只有少量量的記錄錄時,非非關聯(lián)子子查詢比比關聯(lián)子子查詢執(zhí)執(zhí)行得更更快;關聯(lián)子查查詢使用用in子子句是多多余的;而非關關聯(lián)子查查詢使用用exists子句是是不

22、恰當當的。使用in子句的的非關聯(lián)聯(lián)子查詢詢可以轉轉換為標標準連接接操作以以及使用用select distinct來刪除除重復的的記錄;使用exists子句句的關聯(lián)聯(lián)子查詢詢可以轉轉換為標標準連接接,但子子查詢最最好只能能返回一一個記錄錄;子查詢調調整原則則(續(xù))非關聯(lián)子子查詢使使用notexists子子句是沒沒有意義義的;使用notin子句句的非關關聯(lián)子查查詢可以以轉sqlminus子句句,性能能相對會會高一些些;使用notin子句句的關聯(lián)聯(lián)子查詢詢,可以以使用帶帶有selectdistinct子句句的外部部連接操操作改寫寫;各種子查查詢技術術總結標準子查詢反連接子查詢inexistsNot

23、inNot exists關聯(lián)子查詢多余的自動轉換為嵌套的循環(huán)連接可以重寫為select distinct 外部連接可以重寫為select distinct 外部連接非關聯(lián)子查詢自動轉換為嵌套的循環(huán)連接不適合可以重寫為minus操作符的嵌套循環(huán)連接不適合例子:使使用in子句的的非關聯(lián)聯(lián)子查詢詢可以使使用標準準連接操操作以及及使用selectdistinct來來刪除重重復的記記錄;原sql語句:SelectenameFrom empWhereempnoin(select empnofrom bad_creditwherebad_credit_datesysdate-365);改寫后:Selectd

24、istinct/*+rule */ enameFrom emp,bad_creditWherea.empno=b.empnoand bad_credit_datesysdate-365;使用提示示進行調調整提示簡介介歷史:第第一次引引入是在在oracle7,用用來彌補補CBO的缺陷陷,oracle8i中工作作得較好好;目的:用用來更改改SQL語句的的執(zhí)行行計劃;格式:select(update,delete)/*+ hints */ 或或select(update,delete) - +hint使用提示示遵循的的原則注意檢查查語法:select /*+hint */ , /*和+之之間不能能有

25、空格格,必須須緊跟在在select之后,否則無無效使用表別別名:如如果指定定了表別別名,就就不能使使用表名名稱;不能使用用模式名名稱:如如果指定定了模式式所有者者,那么么提示將將被忽略略;檢驗提示示:如果果指定不不可用的的訪問路路徑,如如:first_rows優(yōu)優(yōu)化器模模式與orderby子句句不兼容容,那么么提示將將被忽略略;使提示無無效的條條件Cluster,hash:與非簇簇表一起起使用;Merge_aj,push_subq,Hash_aj:不不存在子子查詢;Index:指指定的索索引不存存在;Index_combine:不存存在位圖圖索引;Parellel:調調用的不不是全表表掃描計計

26、劃;Star:事實實表中存存在不恰恰當索引引;Use_concat:在where子句句中不存存在多個個索引;Use_nl:表中不不存在索索引;提示之一一:優(yōu)化化器提示示Rule:使oracle為為查詢應應用基于于規(guī)則的的優(yōu)化模模式。在在懷疑CBO使使用了非非優(yōu)化的的執(zhí)行計計劃時,使用rule提示;它將忽忽略表和和索引的的統(tǒng)計資資料;/*+rule*/All_rows:基基于成本本的優(yōu)化化方法。目的是是提供最最佳的吞吞吐量和和最小的的資源消消耗。傾傾向于全全表掃描描,不適適用于OLTP系統(tǒng);依賴于于表和索索引的統(tǒng)統(tǒng)計資料料;/*+all_rows*/First_rows:基于于成本的的優(yōu)化方方法

27、。目目的是提提供最快快的反映映時間。依賴于于表和索索引的統(tǒng)統(tǒng)計資料料;/*+first_rows */提示之二二:表連連接提示示Use_hash:對對指定的的表執(zhí)行行一個散散列連接接;如果果有一個個表較小小,通常??煊谇肚短籽h(huán)環(huán)連接;在兩個個表非常常大的情情況下,散列連連接經常常與并行行查詢連連接結合合使用;select /*+use_hash(a,b) parallel(a,4)parallel(b,4)*/;Use_merge:強制執(zhí)執(zhí)行一個個排序合合并操作作;對表表執(zhí)行全全表掃描描;通常常與并行行查詢結結合使用用;最適適用于生生成大型型結果集集的查詢詢、不使使用where子句的的大表連

28、連接或表表中無可可用索引引的查詢詢;select/*+use_merge(a,b)parallel(a,4)parallel(b,4) */表連接提提示(續(xù)續(xù))Use_nl:強制對對目標表表執(zhí)行嵌嵌套循環(huán)環(huán)連接;對包含含兩個大大表的連連接通常常最快;可以不不用更改改from子句句表的順順序來更更改驅動動表(使使用CBO時,from子句句的第一一個表);是CBO的的默認行行為,比比較少用用;/*+use_nl(a)*/Star:強制制使用星星型查詢詢計劃;查詢中中至少存存在三個個表(一一個事實實表和幾幾個維表表),而而且事實實表(大大表)存存在恰當當的索引引(8i可以使使用位圖圖索引);/*+s

29、tar */提示之三三:反連連接提示示反連接是是在SQL語句句中包含含not in或notexist子子句時執(zhí)執(zhí)行的操操作;如如果子查查詢返回回的任何何一條記記錄包含含空值,那么該該查詢將將不會返返回記錄錄;應盡盡量避免免使用。Hash_aj,Merge_aj:在notin子子查詢的的字段中中不存在在空值的的時候,根據連連接的類類型,考考慮使用用這兩個個提示之之一,可可以在很很大程度度上提高高not in子查詢詢的性能能;/*+hash_aj */提示之四四:索引引提示Index:優(yōu)優(yōu)化器將將使用指指定的索索引;如如果沒有有指定索索引,優(yōu)優(yōu)化器將將使用表表中最佳佳的索引引;/*+index(t

30、able,index)*/Index_join:要求求優(yōu)化器器使用索索引連接接作為訪訪問路徑徑;And_equal:如果表表擁有非非唯一的的單獨字字段索引引,而且且期望使使用多個個索引服服務于該該查詢,那么使使用該提提示將合合并這些些索引;至少兩兩個索引引名,但但不能超超過五個個;/*+and_equal(table,index1,index2,)*/索引提示示(續(xù))Index_asc:要求在在范圍掃掃描中使使用升序序索引;優(yōu)化器器的默認認行為,不常用用;No_index:強強制優(yōu)化化器忽略略索引得得存在。一般用用在并行行全表掃掃描性能能高于索索引范圍圍掃描性性能的情情況下;等同于于full提

31、示示;Index_desc:要求求在范圍圍掃描中中使用降降序索引引;如在在max()計計算字段段的最大大值的時時候使用用;/*+index_desc(table,index)*/索引提示示(續(xù))Index_combine:強制制使用位位圖索引引作為表表的訪問問路徑,對兩個個位圖索索引執(zhí)行行ROWID交交集操作作。如果果沒有指指定索引引作參數數,優(yōu)化化器將自自動選擇擇最佳的的位圖索索引;/*+table(bitmap1,bitmap2)*/Index_ffs:強制使使用快速速完全索索引掃描描;如果果大表中中不存在在被查詢詢字段的的高層索索引主鍵鍵,比如如需要選選擇復合合索引中中第二個個字段的的值

32、時,那么快快速完全全索引掃掃描總是是比全表表掃描速速度更快快;/*+index_ffs(table,comindex) */索引提示示(續(xù))Use_concat:要求求為查詢詢中所有有or條條件使用用unionall執(zhí)行計計劃;一一般用在在where子子句中存存在大量量的or條件;提示之五五:并行行提示Parallel:要要求表查查詢以并并行模式式執(zhí)行;一般用用在多個個cpu的服務務器上,與full提提示一起起使用;/*+ full(table) parallel(table,8) */Noparallel:不希希望對全全表掃描描使用并并行機制制,如對對小表執(zhí)執(zhí)行的全全表掃描描時,使使用該提提

33、示;提示之六六:表訪訪問提示示Full:要求求避開索索引,調調用全表表掃描;讀取表表中大量量的數據據塊時;與parallel一起使使用;Hash:選擇擇散列掃掃描來訪訪問指定定的簇表表;/*+hash */Cluster:選擇擇簇掃描描來訪問問指定的的簇表;/*+ cluster*/Nocache:指定定為keep池池分配的的表數據據塊放置置在default池池的中點點;很少少使用;表訪問提提示(續(xù)續(xù))Ordered:要求求表按照照from子句句指定的的順序進進行連接接;對連連接多于于4個表表的查詢詢非常有有用,可可以節(jié)省省sql解析的的時間;/*+ ordered*/Ordered_pred

34、icates:用來指指定where子句中中布爾條條件評估估的順序序;Push_subq:要求查查詢數據據塊中的的所有子子查詢在在執(zhí)行計計劃中盡盡可能早早的被執(zhí)執(zhí)行;用用在子查查詢相對對來說不不很昂貴貴,并且且在很大大程度上上降低返返回到記記錄數;如果子子查詢使使用的是是排序合合并連接接或調用用遠程表表,提示示將不起起作用;調整索引引常見的索索引類型型普通索引引:最常常見到的的索引,create index idx1ontable1 (f1);復合索引引:索引引建立在在多個字字段上;create idx2ontable2 (f1,f3);位圖索引引:使用用位圖的的方式存存儲索引引;createb

35、itmapindexidx3ontable3(f1);基于函數數的索引引:createidx4 on table4(upper(f2);索引無效效內置函數數使索引引無效:from table1a where substr(a.f1,2,4),f1上的的索引無無效;執(zhí)行一個個數學函函數也會會使索引引無效:from table1a where a.f1*3 1000, f1上的索索引無效效;不相等運運算符有有時也會會使索引引無效:from table1a where a.f11000,導導致全表表掃描,f1上上的索引引無效;Where子子句中使使用復合合函數的的非第一一字段將將無法使使用索引引;索引無效效(續(xù))帶有l(wèi)ike條條件的查查詢:wherexxxlike%x;Nul

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論