Oracle RDBMS 優(yōu)化調(diào)整表連接_第1頁
Oracle RDBMS 優(yōu)化調(diào)整表連接_第2頁
Oracle RDBMS 優(yōu)化調(diào)整表連接_第3頁
Oracle RDBMS 優(yōu)化調(diào)整表連接_第4頁
Oracle RDBMS 優(yōu)化調(diào)整表連接_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能2/5310g9ir2表的訪問方式;oracle系統(tǒng)sql優(yōu)化器;調(diào)整表連接;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能3/53表的訪問方式: 全表掃描-順序讀取每個數(shù)據(jù)塊到末尾;hash(散列)獲取-使用符合散列主鍵來為帶有匹配hash表中的記錄創(chuàng)建rowidrowid訪問-通過指定的rowid選定表的一個單記錄: rowid是最快的訪問方式; rowid是oracle系統(tǒng)啟動分配給表的每條記錄的唯一地址;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能4/53全表掃描:順序讀取每個數(shù)據(jù)塊到末尾,從中選擇所有記錄;下面條件之一滿足,

2、oracle采用全表掃描:當(dāng)表不存在索引時;當(dāng)查詢語句不包含where語句時;當(dāng)查詢中使用like以%開始時;引用函數(shù)索引時;當(dāng)使用基于cbo且表中的記錄很少時;當(dāng)參數(shù)optimizer_mode=all_rows時;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能5/53hash訪問: oracle 對多個表的cluster采用hash cluster存儲,這樣兩個表的記錄存放在一個塊內(nèi);hash訪問是通過一個符號主鍵進(jìn)行hash運(yùn)算后得到散列值(hash value),該散列確定記錄所在的塊;散列訪問方法對于經(jīng)常修改主符號鍵來說存在重定位記錄的風(fēng)險,所以建議在靜態(tài)表的cluster中使用

3、散列訪問方法(主鍵常改變不建議用); oracle 的cluster另見9i 10g 分區(qū)與簇文檔。2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能6/53rowid訪問:rowid訪問是得到單個記錄的最快方法;oracle 系統(tǒng)為每個表的每條記錄自動分配rowid,包括oooooofffbbbbbbrrr :oooooo-對象的相對號;fff-文件的編號;bbbbbb-塊的編號;rrr-塊中的記錄號;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能7/53索引訪問方式: oracle有多種索引-b樹索引、位圖索引等;oracle 系統(tǒng)可使用下面索引,包括:索引范圍掃描;單個索引掃描;降序

4、索引掃描;and_euql過濾器;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能8/5310g9ir2表的訪問方式;oracle系統(tǒng)sql優(yōu)化器;調(diào)整表連接;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能9/53sql優(yōu)化器技術(shù);優(yōu)化器模式;基于規(guī)則的優(yōu)化器調(diào)整;基于成本的優(yōu)化器調(diào)整(10g/11g);設(shè)置優(yōu)化器模式;遷移到基于成本的優(yōu)化器調(diào)整;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能10/53sql優(yōu)化器技術(shù): sql優(yōu)化器的目的是為sql語句生成最快、消耗資源最少的執(zhí)行計(jì)劃;sql優(yōu)化器可以產(chǎn)生最快反應(yīng)速度(first_rows模式),可產(chǎn)生最佳吞吐量的執(zhí)行計(jì)劃(all_

5、rows模式)oracle提供基于規(guī)則(rbo)和基于成本(cbo)的優(yōu)化器模式;設(shè)置optimizer_mode=choose時兩種模式交替使用;一般可通過alter session來設(shè)置模式,如:alter session set optimizer_goal= xxx; 2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能11/53query rewriteparse選擇優(yōu)化rbo / cboqueryexecution產(chǎn)生執(zhí)行計(jì)劃optimizerqueryresult2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能12/53基于規(guī)則的優(yōu)化器(rbo): 基本規(guī)則優(yōu)化不使用表和索引的統(tǒng)

6、計(jì)數(shù)據(jù);rbo方法要探討要實(shí)現(xiàn)最佳訪問路徑;rbo根據(jù)語句結(jié)構(gòu)的不同來生成執(zhí)行計(jì)劃表;rbo采用迭代生成執(zhí)行計(jì)劃,并檢查from后每個表以及表間連接方式,根據(jù)每個執(zhí)行路徑所消耗的成本進(jìn)行排序,并選擇最低的路徑,下面是rbo步驟:生成一個可執(zhí)行計(jì)劃列表(包含所有訪問路徑) ;為每個執(zhí)行計(jì)劃指定級別數(shù)值;rbo選擇級別低的計(jì)劃;rbo對所有可連接的表與級別結(jié)果的連接作評估;選擇級別低的方法。2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能13/53sqlexecution分析分析 parseroptimizer mode? 數(shù)據(jù)字典數(shù)據(jù)字典dictionarycost-basedoptimize

7、rrule-basedoptimizerrow sourcegenerator結(jié)果結(jié)果統(tǒng)計(jì)數(shù)據(jù)統(tǒng)計(jì)數(shù)據(jù)cborbo查詢計(jì)劃查詢計(jì)劃用戶用戶2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能14/53rbo與sql操作: rbo將sql語句分為不同的級別,rbo根據(jù)這些級別確定執(zhí)行計(jì)劃:2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能15/53rbo的特性: 總是使用索引:如果表有索引可用,則使用索引 ;排序合并不使用索引; 總是從驅(qū)動表開始:from最后的表為驅(qū)動表; 總是不可避免情況下,才用全表掃描:rbo一般都用索引 ;特別指定不用索引(hint-提示); 任何索引都可以用:rbo用索引

8、不一定好 ; 有時越簡單越好:8i之前系統(tǒng)可提供好的執(zhí)行計(jì)劃 ;9i后不建議采用rbo;10g建議采用 optimizer_mode = all_rows;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能16/53cbo的特性: 使用統(tǒng)計(jì)數(shù)據(jù)和數(shù)據(jù)字典來確定代價;cbo只是一個數(shù)字處理程序,處理:基本表訪問代價;所有數(shù)據(jù)源的訪問方法;并行是否可用;連接的順序與方法;optimizer_mode 可以設(shè)置:choose, first_rows, 或 all_rows10g/11g 默認(rèn)為all_rows2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能17/53cbo方法: 基于代價的優(yōu)化方法

9、是按如下幾步來進(jìn)行:a)優(yōu)化器在可能的存取路徑及用戶提示的基礎(chǔ)下制訂執(zhí)行sql語句的計(jì)劃。b)根據(jù)表、cluster和索引在數(shù)據(jù)字典中存放的特性統(tǒng)計(jì)信息和數(shù)據(jù)分布的統(tǒng)計(jì)信息,計(jì)算出執(zhí)行每個計(jì)劃的代價。c)比較各個計(jì)劃執(zhí)行的代價,取其代價最低者來執(zhí)行。10g/11g版本optimizer_mode默認(rèn)為all_rows2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能18/53table, cluster 統(tǒng)計(jì):number of rowsnumber of blocksnumber of empty blocksaverage row length列統(tǒng)計(jì):number of distinct

10、values (ndv) in columnnumber of nulls in columndata distribution (histogram)索引統(tǒng)計(jì):number of leaf blockslevelsclustering factor2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能19/53表的訪問方式;oracle系統(tǒng)sql優(yōu)化器;調(diào)整表連接;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能20/53oracle 查詢語句中from 子句:from子句最后的表(driving table)將被最先處理driving table驅(qū)動表,有時叫基礎(chǔ)表或外部表select /s

11、elect /* * example example * */ from big,small/ from big,smallwhere big.object_id= samll_object_idwhere big.object_id= samll_object_idcall count cpucall count cpu elapsed disk query elapsed disk query- - - - - - - - - - -parse 1 0.00 0.00parse 1 0.00 0.00 0 0 0 0excute 1 0.00 0.00excute 1 0.00 0.00

12、0 0 0 0fetch 32428 3.38 3.21 0 46977fetch 32428 3.38 3.21 0 46977- - - - - - - - - - -total 32430 3.38 3.22 0 46977total 32430 3.38 3.22 0 46977rows row source operationrows row source operation- - - 486400 hash join 486400 hash join 1000 table access full samll 1000 table access full samll 485400 t

13、able access full big 485400 table access full big記錄少的表作為驅(qū)動表driving tabledriven (inner) table2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能21/53ansi表連接標(biāo)準(zhǔn):等價連接:是標(biāo)準(zhǔn)連接,其中兩個表的一對記錄通過一個公共字段的匹配進(jìn)行連接等價連接的oracle 表訪問計(jì)劃可以是nest loops,hash join或merge join外部連接:是一個確保不完整記錄的連接,兩個表不存在完全匹配條件oracle 返回滿足條件的所有記錄概念介紹參考10g sql-高級查詢2021-10-24orac

14、le 數(shù)據(jù)庫設(shè)計(jì)與性能22/53ansi表連接標(biāo)準(zhǔn):自連接:是一種表和自身連接的特殊情況例如emp表中mgr與empno列就可進(jìn)行自我連接反連接: 當(dāng)使用帶有not in或not exist子句的子查詢時,經(jīng)常采用反連接反連接經(jīng)常是table access full 訪問方式半連接: 半連接返回滿足包含exist子句的查詢記錄,即使條件右邊有多條記錄滿足子查詢的條件,該連接也不會復(fù)制謂詞左邊的記錄半連接經(jīng)常是table access full 訪問方式2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能23/53oracle表連接方式,主要前3種:1.嵌套循環(huán)(nested loops -nl

15、) 2.排序-合并連接(sort merge join -smj) 3.哈希連接(hash join) 4.星型連接(star join)-數(shù)據(jù)倉庫常用oracle 9i/10g cbo下支持的連接:nested loops joinouter joinsort-merge joinhash joinanti-join(反連接)semi-join(半連接)2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能24/53表連接方式-嵌套連接: 嵌套循環(huán)(nested loops, nl) 概念:這種連接方法有驅(qū)動表的概念,該連接過程就是一個2層嵌套循環(huán);外層循環(huán)的次數(shù)越少越好(將小表或返回較小行表作

16、為驅(qū)動表-用于外層循環(huán))外層循環(huán)的次數(shù)并不能總保證使語句產(chǎn)生的i/o次數(shù)最少,有時不遵守這個理論反而會獲得更好的效率內(nèi)部連接過程(表a:row_source1、表b:row_source2):row source1的的row 1 -探查探查-row source 2row source1的的row 2 -探查探查-row source 2 row source1的的row 3 -探查探查-row source 2.row source1的的row n -探查探查-row source 22021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能25/53表連接方式-嵌套連接(續(xù)): 嵌套循環(huán)(nest

17、ed loops, nl) 概念:row source1為驅(qū)動表或外部表。row source2被稱為被探查表或內(nèi)部表;在nl連接中,oracle讀取row source1中的每一行,然后在row sourc2中檢查是否有匹配的行,所有被匹配的行都被放到結(jié)果集中,然后處理row source1中的下一行;如果driving row source(外部表)比較小,并且在inner row source(內(nèi)部表)上有唯一索引或有高選擇性非唯一索引時,使用這種方法可以得到較好的效率;nl有其它連接方法沒有的一個優(yōu)點(diǎn)是:可以先返回已經(jīng)連接的行,而不必等待所有的連接操作處理完才返回?cái)?shù)據(jù),這可以實(shí)現(xiàn)快速的

18、響應(yīng)時間。2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能26/53表連接方式-嵌套連接(續(xù)): 嵌套循環(huán)(nested loops, nl) 概念:如果不使用并行,可在驅(qū)動表加where 條件以返回較少行數(shù)據(jù)大表也可能作為驅(qū)動表,關(guān)鍵看限制條件;對于并行查詢,可選大表作為驅(qū)動表(充分利用并行);有時使用并行操作反而效率低(如該表有很少的行符合條件)硬件配置是否支持并行(如是否有多個cpu,多個硬盤控制器),要具體問題具體對待。下面是nl連接的例子:sql explain plan for select a.dname,b.sqlfrom dept a,emp bwhere a.deptno

19、 = b.deptno;query plan-select statement choose cost=5nested loopstable access full dept analyzedtable access full emp analyzed2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能27/53先掃描row source 1 (外部表 即驅(qū)動表)每個行再驅(qū)動內(nèi)部表的row source 2返回連接成功的行代價:讀驅(qū)動表然后訪問內(nèi)部表.性能依賴于內(nèi)部表的索引outer loopinner loopcheck for a matchnested loopaccess a(full)

20、access b(rowid)index access2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能28/53嵌套連接:nested loops樣例樣例2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能29/53rowsource 1rowsource 2sortsortmerge表連接方式-排序合并連接(sort merge join ): sml步驟為:1) 首先生成表a(row source1)需要的數(shù)據(jù),然后對這些數(shù)據(jù)按照連接操作關(guān)聯(lián)列進(jìn)行排序。 2) 隨后生成表b(row source2)需要的數(shù)據(jù),然后對這些數(shù)據(jù)按照與sort source1對應(yīng)的連接操作關(guān)聯(lián)列進(jìn)行排序(后面示

21、意圖后面示意圖)。 3) 最后兩邊已排序的行被放在一起執(zhí)行合并操作,即將2個row source按照連接條件連接起來(即合并) 2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能30/53排序合并連接:sort merge示意-注意左右兩個表都先排序再比較2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能31/53表連接方式-(hash join)哈希連接: 理論上來說比nl與smj要高效,而且只用在cbo優(yōu)化器中; 較小的row source1被用來構(gòu)建hash table與bitmap,row source2被用于散列算法,并與row source1生成的hash table進(jìn)行匹配,以便

22、進(jìn)行進(jìn)一步連接。 bitmap被用來作為一種比較快的查找方法,檢查在hash table中是否有匹配的行。 當(dāng)hash 表較大而內(nèi)存不能存放時,這種查找方法更為有用。 這種連接方法也有類似nl連接中驅(qū)動表的概念(構(gòu)建hash table與bitmap表=驅(qū)動表),當(dāng)被構(gòu)建的hash table與bitmap能被容納在內(nèi)存中時,這種連接方式的效率極高。 sql explain plan for select /sql explain plan for select /* *+ use_hash(emp+ use_hash(emp) ) * */ / empno from emp, deptwhe

23、re emp.deptno = dept.deptnoempno from emp, deptwhere emp.deptno = dept.deptno; ;query planquery plan-select statementchoose cost=3select statementchoose cost=3hash jointablehash jointable access full depttable access full emp access full depttable access full emp2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能32/53表連接方式-h

24、ash連接(續(xù)): 要使hash連接有效,需要設(shè)置hash_join_enabled=true,默認(rèn)為true;還要設(shè)置hash_area_size參數(shù),以使哈希連接高效運(yùn)行,因?yàn)楣_B接會在該參數(shù)指定大小的內(nèi)存中運(yùn)行,過小的參數(shù)會使哈希連接的性能比其他連接方式還要低;hash_join_enabled在10g/11g 為過失的參數(shù),建議不要設(shè)置該參數(shù)。 2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能33/53最小的表用來做為hash表和bitmap第2個行源表做hsah算法并與hash表比對在hash表中,位圖是快速反應(yīng)搜索行的方法每個源行只需要單次即完成,它比排序-合并高效row so

25、urce 1(build input)row source 2(probe)hash_area_sizeoutput rowstemp2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能34/53hash連接:hash join 樣例2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能35/53三種連接方式比較: 排序 -合并連接(sort merge join, smj):對于非等值連接,這種連接方式的效率是比較高的; 如果在關(guān)聯(lián)的列上都有索引,效果更好; 對于將2個較大的row source連接,比nl連接要好一些; 如果sort merge返回的row source過大,導(dǎo)致使用過多的row

26、id在表中查詢數(shù)據(jù)時,數(shù)據(jù)庫性能下降(過多的i/o) 嵌套循環(huán)(nested loops, nl):如果 外部表 比較小,并且在 內(nèi)部表 上有唯一索引,或有高選擇性非唯一索引時,使用這種方法可以得到較好的效率。 nl比其它連接方法多優(yōu)點(diǎn):可先返回已經(jīng)連接的行,而不必等待所有的連接操作處理完。 哈希連接(hash join, hj):這種方法好于其它2種連接(cbo優(yōu)化器),而且需要設(shè)置合適的hash_area_size參數(shù),才能取得較好的性能。 在2個較大的row source之間連接時會取得相對較好的效率,在一個row source較小時則能取得更好的效率。 2021-10-24oracle

27、 數(shù)據(jù)庫設(shè)計(jì)與性能36/53三種連接方式歡迎程度(高到低): 1.嵌套連接;2.排序連接;3.hash連接;排序連接與hash連接類似;下面是相對優(yōu)越性: 連接方式連接方式優(yōu)越性優(yōu)越性是否排序是否排序大記錄子集大記錄子集是否需索引是否需索引排序合并連接排序合并連接更大的吞吐量更大的吞吐量排序排序快快不需要不需要hash連接連接嵌套連接嵌套連接更短的反應(yīng)時間更短的反應(yīng)時間不排序不排序慢慢需要需要2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能37/53三種連接方法建議: 在sql下直接調(diào)試:sqlset timing on執(zhí)行各語句,觀察所用的時間時間一般為毫秒級:時:分:秒.毫秒 采用sql

28、跟蹤方式: 對復(fù)雜的程序采用跟蹤 對結(jié)果的分析2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能38/53sql結(jié)果的排序問題: sql語句處理比我們想象的要復(fù)雜,可與sql*plus結(jié)合使用,以處理排序、轉(zhuǎn)換、格式化等;oracle提供多種對結(jié)果進(jìn)行排序:order by ; join;group by ;aggregate(聚集運(yùn)算) ;select unique;select distinct;create index ;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能39/53oracle 系統(tǒng)允許對優(yōu)化器進(jìn)行提示提示符號為/*+ hint */提示可使優(yōu)化器按照開發(fā)人員的進(jìn)行執(zhí)行計(jì)

29、劃9i/10g可允許下面的提示: 優(yōu)化路徑與目標(biāo)進(jìn)行提示查詢轉(zhuǎn)換與訪問路徑進(jìn)行提示連接順序進(jìn)行提示連接的操作進(jìn)行提示并行執(zhí)行進(jìn)行提示附加的其他提示2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能40/53oracle 表連接可采用優(yōu)化器提示: use_hash hash連接use_merge 合并連接star 星形連接merge_aj 合并反連接 hash_aj hash反連接(hash join anti-散列反連接 ) 2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能41/53使用use_hash提示: use_hash提示將對指定表執(zhí)行hash連接,下面是一個使用提示強(qiáng)制執(zhí)行hash

30、連接的并行查詢例子:select /*+ ordered use_hash(e,b) parallel(e,4) parallel(b,4) */e.ename, hiredate,m from bouus b,emp ewhere e.ename = b.ename ;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能42/53使用use_merge提示: use_merge提示強(qiáng)制調(diào)用排序合并連接操作;這種方法常和并行一起使用,如:注意提示內(nèi)的表別名select /*+ use_merge(e,b) parallel(e,4) parallel(b,4) */e.ename, hireda

31、te,m from bouus b,emp ewhere e.ename = b.ename ;2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能43/53使用hash_aj提示: 在子查詢中使用hash_aj提示,如:delete from stats$sqltext stwhere (hash_value, text_subset) not in(select -+ hash_ajhash_value, text_subsetfrom stats$sql_summary sswhere ( ( snap_id :hi_snap )and dbid = :dbid and instance_

32、number = :inst_num )or ( dbid != :dbid or instance_number != :inst_num)2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能44/53優(yōu)化器自動采用的嵌套連接: 檔你沒有明確提示連接方式時;優(yōu)化器也會采用認(rèn)為是最優(yōu)的連接,如:select *from reserves r, sailors swhere r.sid=s.sid;-0 select statement optimizer=choose1 0 nested loops2 1 table access (full) of reserves3 1 table acce

33、ss (by index rowid) of sailors4 3 index (unique scan) of sys_c00628777 (unique)2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能45/53cbo根據(jù)統(tǒng)計(jì)數(shù)據(jù)自動使用nl: cbo經(jīng)常自動使用小表作為驅(qū)動表,如:select samlee.object_id,big.ownerselect samlee.object_id,big.ownerfrom samll,bigfrom samll,big where samll.object_id=big.object_idwhere samll.object_id=big

34、.object_id and samll.object_type and samll.object_type=java resource=java resourcerows row source operationrows row source operation- - - 13312 table access by index rowid big 13312 table access by index rowid big 13339 nest loops 13339 nest loops 26 table access full samll 26 table access full saml

35、l 13312 index range sacn big_object_id(object 13312 index range sacn big_object_id(object id 33423) id 33423)2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能46/53cbo下的提示first_rows_n: oracle 9i 版本前,只有all_rows與first_rowsoracle 9i 開始first_rows_1、first_rows_10、first_rows_100、first_rows_1000根據(jù)用戶的要求進(jìn)行參數(shù)的修改縮短反應(yīng)時間使用first_rows_n最優(yōu)

36、化,oracle查詢能夠使用最少的反應(yīng)時間來給出最初的n行結(jié)果。2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能47/53提示提示說明說明 full表明對表選擇全局掃描的方法rowid提示明確表明對指定表根據(jù)rowid進(jìn)行訪問cluster提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇對象有效index表明對表選擇索引的掃描方法index_asc表明對表選擇索引升序的掃描方法index_desc表明對表選擇索引降序的掃描方法index_join提示明確命令優(yōu)化器使用索引作為訪問路徑index_ffs對指定的表執(zhí)行快速全索引掃描no_index提示不要用索引and_equal提示優(yōu)化器使用合并索引2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能48/53提示 索引合并and_equal : 如果一個表創(chuàng)建了多個索引,則可使用and_equal實(shí)現(xiàn)索引的合并:2021-10-24oracle 數(shù)據(jù)庫設(shè)計(jì)與性能49/53提示提示說明說明 use_conca

溫馨提示

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

評論

0/150

提交評論