oraclesql性能優(yōu)化調(diào)整

oraclesql性能優(yōu)化調(diào)整

ID:8962664

大小:74.74 KB

頁(yè)數(shù):62頁(yè)

時(shí)間:2018-04-13

oraclesql性能優(yōu)化調(diào)整_第1頁(yè)
oraclesql性能優(yōu)化調(diào)整_第2頁(yè)
oraclesql性能優(yōu)化調(diào)整_第3頁(yè)
oraclesql性能優(yōu)化調(diào)整_第4頁(yè)
oraclesql性能優(yōu)化調(diào)整_第5頁(yè)
資源描述:

《oraclesql性能優(yōu)化調(diào)整》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、Oraclesql性能優(yōu)化調(diào)整1.選用適合的ORACLE優(yōu)化器?ORACLE的優(yōu)化器共有3種:a.RULE(基于規(guī)則)b.COST(基于成本)c.CHOOSE(選擇性)?設(shè)置缺省的優(yōu)化器,可以通過對(duì)init.ora文件中OPTIMIZER_MODE參數(shù)的各種聲明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS.你當(dāng)然也在SQL句級(jí)或是會(huì)話(session)級(jí)對(duì)其進(jìn)行覆蓋.為了使用基于成本的優(yōu)化器(CBO,Cost-BasedOptimizer),你必須經(jīng)常運(yùn)行analyze命令,以增加數(shù)據(jù)庫(kù)中的對(duì)象統(tǒng)計(jì)信息(objectstatisti

2、cs)的準(zhǔn)確性.如果數(shù)據(jù)庫(kù)的優(yōu)化器模式設(shè)置為選擇性(CHOOSE),那么實(shí)際的優(yōu)化器模式將和是否運(yùn)行過analyze命令有關(guān).如果table已經(jīng)被analyze過,優(yōu)化器模式將自動(dòng)成為CBO,反之,數(shù)據(jù)庫(kù)將采用RULE形式的優(yōu)化器.在缺省情況下,ORACLE采用CHOOSE優(yōu)化器,為了避免那些不必要的全表掃描(fulltablescan),你必須盡量避免使用CHOOSE優(yōu)化器,而直接采用基于規(guī)則或者基于成本的優(yōu)化器.2.??????訪問Table的方式ORACLE采用兩種訪問表中記錄的方式:a.??????全表掃描全表掃描就是順序地訪問表中每條記錄.ORACLE采

3、用一次讀入多個(gè)數(shù)據(jù)塊(databaseblock)的方式優(yōu)化全表掃描.b.??????通過ROWID訪問表你可以采用基于ROWID的訪問方式情況,提高訪問表的效率,,ROWID包含了表中記錄的物理位置信息..ORACLE采用索引(INDEX)實(shí)現(xiàn)了數(shù)據(jù)和存放數(shù)據(jù)的物理位置(ROWID)之間的聯(lián)系.通常索引提供了快速訪問ROWID的方法,因此那些基于索引列的查詢就可以得到性能上的提高.?3.??????共享SQL語(yǔ)句為了不重復(fù)解析相同的SQL語(yǔ)句,在第一次解析之后,ORACLE將SQL語(yǔ)句存放在內(nèi)存中.這塊位于系統(tǒng)全局區(qū)域SGA(systemglobalarea)的

4、共享池(sharedbufferpool)中的內(nèi)存可以被所有的數(shù)據(jù)庫(kù)用戶共享.因此,當(dāng)你執(zhí)行一個(gè)SQL語(yǔ)句(有時(shí)被稱為一個(gè)游標(biāo))時(shí),如果它和之前的執(zhí)行過的語(yǔ)句完全相同,ORACLE就能很快獲得已經(jīng)被解析的語(yǔ)句以及最好的執(zhí)行路徑.ORACLE的這個(gè)功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用.可惜的是ORACLE只對(duì)簡(jiǎn)單的表提供高速緩沖(cachebuffering),這個(gè)功能并不適用于多表連接查詢.數(shù)據(jù)庫(kù)管理員必須在init.ora中為這個(gè)區(qū)域設(shè)置合適的參數(shù),當(dāng)這個(gè)內(nèi)存區(qū)域越大,就可以保留更多的語(yǔ)句,當(dāng)然被共享的可能性也就越大了.當(dāng)你向ORACLE提交一個(gè)S

5、QL語(yǔ)句,ORACLE會(huì)首先在這塊內(nèi)存中查找相同的語(yǔ)句.這里需要注明的是,ORACLE對(duì)兩者采取的是一種嚴(yán)格匹配,要達(dá)成共享,SQL語(yǔ)句必須完全相同(包括空格,換行等).共享的語(yǔ)句必須滿足三個(gè)條件:?A.?????字符級(jí)的比較:當(dāng)前被執(zhí)行的語(yǔ)句和共享池中的語(yǔ)句必須完全相同.例如:SELECT*FROMEMP;和下列每一個(gè)都不同SELECT*fromEMP;Select*FromEmp;SELECT*FROMEMP;B.?????兩個(gè)語(yǔ)句所指的對(duì)象必須完全相同:例如:用戶對(duì)象名如何訪問Jacksal_limitprivatesynonymWork_citypubli

6、csynonymPlant_detailpublicsynonymJillsal_limitprivatesynonymWork_citypublicsynonymPlant_detailtableowner?考慮一下下列SQL語(yǔ)句能否在這兩個(gè)用戶之間共享.?SQL能否共享原因selectmax(sal_cap)fromsal_limit;不能每個(gè)用戶都有一個(gè)privatesynonym-sal_limit,它們是不同的對(duì)象selectcount(*0fromwork_citywheresdesclike'NEW%';能兩個(gè)用戶訪問相同的對(duì)象publicsynon

7、ym-work_cityselecta.sdesc,b.locationfromwork_citya,plant_detailbwherea.city_id=b.city_id不能用戶jack通過privatesynonym訪問plant_detail而jill是表的所有者,對(duì)象不同.?C.?????兩個(gè)SQL語(yǔ)句中必須使用相同的名字的綁定變量(bindvariables)例如:第一組的兩個(gè)SQL語(yǔ)句是相同的(可以共享),而第二組中的兩個(gè)語(yǔ)句是不同的(即使在運(yùn)行時(shí),賦于不同的綁定變量相同的值)a.selectpin,namefrompeoplewherepin=:

8、blk1.

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。