oracle sql性能優(yōu)化(全)

oracle sql性能優(yōu)化(全)

ID:9883847

大?。?.31 MB

頁數(shù):207頁

時間:2018-05-12

oracle sql性能優(yōu)化(全)_第1頁
oracle sql性能優(yōu)化(全)_第2頁
oracle sql性能優(yōu)化(全)_第3頁
oracle sql性能優(yōu)化(全)_第4頁
oracle sql性能優(yōu)化(全)_第5頁
資源描述:

《oracle sql性能優(yōu)化(全)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、ORACLE培訓--SQL性能優(yōu)化老方塊內(nèi)部培訓班使用內(nèi)容概述課程主要討論:SQL語句執(zhí)行的過程、ORACLE優(yōu)化器,表之間的關(guān)聯(lián),如何得到SQL執(zhí)行計劃,如何分析執(zhí)行計劃等內(nèi)容,從而由淺到深的方式了解SQL優(yōu)化的過程,使大家逐步掌握SQL優(yōu)化。目錄優(yōu)化基礎(chǔ)知識性能調(diào)整綜述有效的應用設(shè)計SQL語句的處理過程Oracle的優(yōu)化器Oracle的執(zhí)行計劃注意事項一、優(yōu)化基礎(chǔ)知識概述性能管理性能問題調(diào)整的方法SQL優(yōu)化機制應用的調(diào)整SQL語句的處理過程共享SQL區(qū)域SQL語句處理的階段共享游標SQL編碼標準Oracle優(yōu)化器介紹SQLTunningTips優(yōu)化

2、Tools性能管理盡早開始設(shè)立合適目標邊調(diào)整邊監(jiān)控相關(guān)人員進行合作及時處理過程中發(fā)生的意外和變化80/20定律SQL優(yōu)化衡量指標隨著軟件技術(shù)的不斷發(fā)展,系統(tǒng)性能越來越重要。系統(tǒng)性能主要用:系統(tǒng)響應時間和并發(fā)性來衡量。造成SQL語句性能不佳大致有兩個原因:開發(fā)人員只關(guān)注查詢結(jié)果的正確性,忽視查詢語句的效率。開發(fā)人員只關(guān)注SQL語句本身的效率,對SQL語句執(zhí)行原理、影響SQL執(zhí)行效率的主要因素不清楚。*前者可以通過深入學習SQL語法及各種SQL調(diào)優(yōu)技巧進行解決。SQL調(diào)優(yōu)是一個系統(tǒng)工程,熟悉SQL語法、掌握各種內(nèi)嵌函數(shù)、分析函數(shù)的用法只是編寫高效SQL的必

3、要條件。*后者從分析SQL語句執(zhí)行原理入手,指出SQL調(diào)優(yōu)應在優(yōu)化SQL解析和優(yōu)化CBO上。調(diào)優(yōu)領(lǐng)域調(diào)優(yōu)領(lǐng)域:應用程序級調(diào)優(yōu):*SQL語句調(diào)優(yōu)*管理變化調(diào)優(yōu)2.實例級調(diào)優(yōu)*內(nèi)存*數(shù)據(jù)結(jié)構(gòu)*實例配置3.操作系統(tǒng)交互*I/O*SWAP*Parameters本課程內(nèi)容只講解討論應用程序級:OracleSQL語句調(diào)優(yōu)及管理變化調(diào)優(yōu)調(diào)整的方法調(diào)整業(yè)務功能調(diào)整數(shù)據(jù)設(shè)計調(diào)整流程設(shè)計調(diào)整SQL語句調(diào)整物理結(jié)構(gòu)調(diào)整內(nèi)存分配調(diào)整I/O調(diào)整內(nèi)存競爭調(diào)整操作系統(tǒng)不同調(diào)整產(chǎn)生相應性能收益調(diào)整的角色SQL語句優(yōu)化是提高性能的重要環(huán)節(jié)開發(fā)人員不能只注重功能的實現(xiàn),不管性能如何開發(fā)人

4、員不能把Oracle當成一個黑盒子,必須了解其結(jié)構(gòu)、處理SQL和數(shù)據(jù)的方法必需遵守既定的開發(fā)規(guī)范未經(jīng)過SQL語句優(yōu)化的模塊不要上線SQL語句優(yōu)化的過程定位有問題的語句檢查執(zhí)行計劃檢查執(zhí)行過程中優(yōu)化器的統(tǒng)計信息分析相關(guān)表的記錄數(shù)、索引情況改寫SQL語句、使用HINT、調(diào)整索引、表分析有些SQL語句不具備優(yōu)化的可能,需要優(yōu)化處理方式達到最佳執(zhí)行計劃什么是好的SQL語句?盡量簡單,模塊化易讀、易維護節(jié)省資源內(nèi)存CPU掃描的數(shù)據(jù)塊要少少排序不造成死鎖SQL共享原理ORACLE將執(zhí)行過的SQL語句存放在內(nèi)存的共享池(sharedbufferpool)中,可以被所

5、有的數(shù)據(jù)庫用戶共享。當你執(zhí)行一個SQL語句(有時被稱為一個游標)時,如果它和之前的執(zhí)行過的語句完全相同,ORACLE就能很快獲得已經(jīng)被解析的語句以及最好的執(zhí)行路徑.這個功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用。SQL共享原理為了不重復解析相同的SQL語句,在第一次解析之后,Oracle將SQL語句存放在內(nèi)存中。這塊位于系統(tǒng)全局區(qū)域SGA(systemglobalarea)的共享池(sharedbufferpoo1)中的內(nèi)存可以被所有的數(shù)據(jù)庫用戶共享。因此,當你執(zhí)行一個SQL語句(有時被稱為一個游標)時,如果它和之前執(zhí)行過的語句完全相同,Ora

6、cle就能很快獲得已經(jīng)被解析的語句以及最好的執(zhí)行方案。Oracle的這個功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用??上У氖牵琌racle只對簡單的表提供高速緩沖(cachebufferiIlg),這個功能并不適用于多表連接查詢。數(shù)據(jù)庫管理員必須在啟動參數(shù)文件中為這個區(qū)域設(shè)置合適的參數(shù),當這個內(nèi)存區(qū)域越大,就可以保留更多的語句,當然被共享的可能性也就越大了。當向Oracle提交一個SQL語句時,Oracle會首先在這塊內(nèi)存中查找相同的語句。SQL共享的三個條件當前被執(zhí)行的語句和共享池中的語句必須完全相同(包括大小寫、空格、換行等)兩個語句所指的

7、對象必須完全相同(同義詞與表是不同的對象)兩個SQL語句中必須使用相同的名字的綁定變量(bindvariables)共享SQL語句注意:Oracle對兩者采取的是一種嚴格匹配策略,要達成共享。SQL語句必須完全相同(包括空格、換行等)。能夠使用共享的語句必須滿足三個條件:①字符級的比較。當前被執(zhí)行的語句和共享池中的語句必須完全相同。例如:SELECT*FROMATABLE;和下面每一個SQL語句都不同:SELECT*fromATABLESelect*FromAtable;②語句所指對象必須完全相同即兩條SQL語句操作的數(shù)據(jù)庫對象必須同一。③語句中必須使

8、用相同命名的綁定變量。如:第一組的兩個SQL語句是相同的,可以共享;而第二組中兩個語句不同,即

當前文檔最多預覽五頁,下載文檔查看全文

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

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