oracle sql性能調(diào)優(yōu)

oracle sql性能調(diào)優(yōu)

ID:6321662

大?。?13.37 KB

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

時(shí)間:2018-01-10

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

《oracle sql性能調(diào)優(yōu)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、學(xué)習(xí)報(bào)告ORACLESQL性能調(diào)優(yōu)1序言22影響SQLPERFORMANCE的關(guān)鍵因素和配置:22.1關(guān)于執(zhí)行計(jì)劃22.2ORACLE優(yōu)化器22.2.1ORACLE優(yōu)化器的優(yōu)化方式22.2.2優(yōu)化器的優(yōu)化模式(OptermizerMode)32.2.3Optimizermode優(yōu)化模式級(jí)別的設(shè)定:32.2.4查看對(duì)象統(tǒng)計(jì)信息(objectstatistics)32.3結(jié)合BenQOracleERP42.3.1優(yōu)化模式(OptermizerMode)42.3.2關(guān)于Gather52.4跟蹤SQL實(shí)際運(yùn)行的Cost52.5小結(jié)53SQL語(yǔ)句的TUNING經(jīng)驗(yàn)分享:6

2、3.1絕大多數(shù)情況下notexists比notin效率高63.2UNIONALL效率比UNION高很多63.3一些很耗資源的SQL操作,在不必要的情況下不要使用63.4通常聯(lián)接查詢比子查詢的效率要高很多73.5用table索引(index)欄位去做Table間的關(guān)聯(lián),可避免費(fèi)時(shí)的全表掃描73.6在View中盡量不要使用Package/function來(lái)得到欄位值,83.7通過(guò)ROWID訪問(wèn)表93.8必要時(shí),可在OracleStandardTable上加索引93.9合理排列WHERE子句中的連接順序.93.10用Where子句替換HAVING子句93.11關(guān)于使用

3、索引(Index)的一些注意點(diǎn)103.11.1‘!=’,NOT操作將不使用索引.103.11.2‘

4、

5、’是字符連接函數(shù).就象其它函數(shù)那樣,停用了索引.103.11.3相同的索引列不能互相比較,這將會(huì)啟用全表掃描.103.11.4避免在索引列上使用計(jì)算.113.11.5基于成本的優(yōu)化器(CBO)會(huì)對(duì)索引的選擇性進(jìn)行判斷,來(lái)決定是否使用索引113.11.6Index信息的重新統(tǒng)計(jì)113.12識(shí)別“低效運(yùn)行”的SQL語(yǔ)句11學(xué)習(xí)報(bào)告1序言BenQSaleOffice自O(shè)racleERP上線后,隨著資料量的日益加大,目前BQE,BQC,BQP這幾個(gè)Site的Perfor

6、mance的問(wèn)題都表現(xiàn)得越來(lái)越明顯,Tunning得工作量也明顯增加??紤]到影響OracleSQLPerformance的有很多方面,我們這次研究的Tunning先包括兩個(gè)大方向:OracleDBConfiguration和SQLStatementTuning。這份文檔主要將影響SQLPerformance的因素做個(gè)基礎(chǔ)的闡述,再將大家在平時(shí)寫SQL積累的經(jīng)驗(yàn)做個(gè)總結(jié)。2影響SQLPerformance的關(guān)鍵因素和配置:OracleDatabase上的設(shè)置對(duì)Performance的影響很大,如SharedPoolSize、BufferCacheSize、SGAS

7、tructures、DatabaseI/OConfiguration、RollbackSegments等等,這些是DBA要更據(jù)實(shí)際狀況取Tunning的部分,我們暫不詳細(xì)討論,DBA可對(duì)這塊進(jìn)行補(bǔ)充;這份文檔我們將重點(diǎn)放在影響SQL執(zhí)行效率的一些關(guān)鍵因素和設(shè)置上。2.1關(guān)于執(zhí)行計(jì)劃我們?cè)谄綍r(shí)工作中用到大量的View,View中SQL的寫法對(duì)效率的影響很大,首先有必要了解一條SQL語(yǔ)句是如何被執(zhí)行的。當(dāng)SQL語(yǔ)句進(jìn)入Oracle的緩存后,在該語(yǔ)句準(zhǔn)備執(zhí)行之前,DBMS將執(zhí)行下列步驟:1.SQL語(yǔ)法檢查:檢查SQL語(yǔ)句拼寫是否正確和詞序。2.SQL語(yǔ)義分析:核實(shí)所有

8、的與數(shù)據(jù)字典不一致的表和列的名字。3.生成執(zhí)行計(jì)劃:使用優(yōu)化規(guī)則和數(shù)據(jù)字典中的統(tǒng)計(jì)表來(lái)決定最佳執(zhí)行計(jì)劃。4.建立可執(zhí)行的二進(jìn)制代碼:基于執(zhí)行計(jì)劃,Oracle生成二進(jìn)制執(zhí)行代碼。5.抓取并返回需要的數(shù)據(jù)。其中第三步生成執(zhí)行計(jì)劃非常關(guān)鍵,所謂執(zhí)行計(jì)劃,就是對(duì)一個(gè)查詢?nèi)蝿?wù),做出一份怎樣去完成任務(wù)的詳細(xì)方案。對(duì)于查詢而言,我們提交的SQL僅僅是描述出了我們的目的,但Oracle內(nèi)部怎么去得到這些數(shù)據(jù),是由數(shù)據(jù)庫(kù)DBMS來(lái)決定的。所以執(zhí)行計(jì)劃產(chǎn)生的好壞直接影響SQL運(yùn)行的Performance。我們平時(shí)對(duì)SQL做一些Tuning,為了得到相同的數(shù)據(jù)而去嘗試用不同的SQL

9、寫法,目的就是能讓Oracle更據(jù)你的語(yǔ)句產(chǎn)生一個(gè)更好的執(zhí)行計(jì)劃,從而得到更好的效率。2.2ORACLE優(yōu)化器在不同的情況下,同一條SQL可能有多種執(zhí)行計(jì)劃。但理論上在某一時(shí)點(diǎn),一定只有一種執(zhí)行計(jì)劃是最優(yōu)的、花費(fèi)時(shí)間是最少的。執(zhí)行計(jì)劃的工作是由優(yōu)化器(Optimizer)來(lái)完成的,那優(yōu)化器是依據(jù)什么訊息去創(chuàng)建出最合理的執(zhí)行計(jì)劃?回答這個(gè)問(wèn)題前先要了解一下ORACLE的優(yōu)化器:2.2.1ORACLE優(yōu)化器的優(yōu)化方式ORACLE優(yōu)化器的優(yōu)化方式有兩大類,即基于規(guī)則的優(yōu)化方式(Rule-BasedOptimization,簡(jiǎn)稱為RBO)和基于代價(jià)的優(yōu)化方式(Cost-

10、BasedOptimiz

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。