版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 二、二、Oracle Oracle 體系結(jié)構(gòu)體系結(jié)構(gòu) 五、五、Oracle SQLOracle SQL編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點(diǎn)四、典型案例分析暨優(yōu)化要點(diǎn) 三、三、Oracle SQLOracle SQL優(yōu)化基礎(chǔ)優(yōu)化基礎(chǔ) 一、培訓(xùn)目的一、培訓(xùn)目的培訓(xùn)總目錄培訓(xùn)總目錄培訓(xùn)目的培訓(xùn)目的培訓(xùn)目標(biāo)培訓(xùn)內(nèi)容課堂交互 本次課程大約需要3個(gè)小時(shí),課后,我們會(huì)留半個(gè)小時(shí)與大家進(jìn)行探討,希望在 座各位在培訓(xùn)過(guò)程中記錄下自己的問(wèn)題; Oracle 體系結(jié)構(gòu); Oracle SQL優(yōu)化及編寫規(guī)范; 了解Oracle 體系架構(gòu); 掌握Oracle SQL優(yōu)化基本方法; Oracle SQL優(yōu)化典型
2、案例分析; 二、二、Oracle Oracle 體系結(jié)構(gòu)體系結(jié)構(gòu) 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點(diǎn)四、典型案例分析暨優(yōu)化要點(diǎn) 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎(chǔ)優(yōu)化基礎(chǔ) 一、培訓(xùn)目的一、培訓(xùn)目的培訓(xùn)總目錄培訓(xùn)總目錄OracleOracle服務(wù)器架構(gòu)服務(wù)器架構(gòu)OracleOracle內(nèi)存體系架構(gòu)內(nèi)存體系架構(gòu)OracleOracle進(jìn)程體系架構(gòu)進(jìn)程體系架構(gòu) 用戶進(jìn)程用戶進(jìn)程:在數(shù)據(jù)庫(kù)用戶或批處理進(jìn)程連接到在數(shù)據(jù)庫(kù)用戶或批處理進(jìn)程連接到 Oracle DB 時(shí)啟動(dòng)時(shí)啟動(dòng) 服務(wù)器進(jìn)程服務(wù)器進(jìn)程:連接到連接到Ora
3、cle 實(shí)例,在用戶建立實(shí)例,在用戶建立 會(huì)話時(shí)啟動(dòng)會(huì)話時(shí)啟動(dòng) 后臺(tái)進(jìn)程后臺(tái)進(jìn)程:在在Oracle 實(shí)例啟動(dòng)時(shí)啟動(dòng)實(shí)例啟動(dòng)時(shí)啟動(dòng)OracleOracle存儲(chǔ)體系架構(gòu)存儲(chǔ)體系架構(gòu)OracleOracle高可用性高可用性_ _雙機(jī)熱備雙機(jī)熱備優(yōu)點(diǎn)優(yōu)點(diǎn) 管理簡(jiǎn)單管理簡(jiǎn)單 相對(duì)較為穩(wěn)定相對(duì)較為穩(wěn)定缺點(diǎn)缺點(diǎn) 切換間存在停頓切換間存在停頓 備機(jī)空閑備機(jī)空閑 無(wú)擴(kuò)展性無(wú)擴(kuò)展性O(shè)racleOracle高可用性高可用性_ _雙機(jī)熱備切換雙機(jī)熱備切換OracleOracle高可用性高可用性_RAC_RAC優(yōu)點(diǎn)優(yōu)點(diǎn) 良好的可伸縮性、可擴(kuò)展性良好的可伸縮性、可擴(kuò)展性 高可用性高可用性 新進(jìn)的新進(jìn)的Cache Fusi
4、on技術(shù)技術(shù) 負(fù)載均衡負(fù)載均衡缺點(diǎn)缺點(diǎn) 管理復(fù)雜管理復(fù)雜 對(duì)網(wǎng)絡(luò)要求高對(duì)網(wǎng)絡(luò)要求高OracleOracle高可用性高可用性_RAC_RAC將應(yīng)用和用戶自動(dòng)而透明地重新連接到將應(yīng)用和用戶自動(dòng)而透明地重新連接到另一個(gè)系統(tǒng)另一個(gè)系統(tǒng)登錄的上下文可被保持登錄的上下文可被保持應(yīng)用查詢不會(huì)中斷應(yīng)用查詢不會(huì)中斷當(dāng)集群內(nèi)節(jié)點(diǎn)當(dāng)集群內(nèi)節(jié)點(diǎn) A A 失失敗敗, , 用戶被轉(zhuǎn)移用戶被轉(zhuǎn)移OracleOracle RACRAC負(fù)載均衡負(fù)載均衡 數(shù)據(jù)庫(kù)啟動(dòng)時(shí),向監(jiān)聽(tīng)進(jìn)程注冊(cè)數(shù)據(jù)庫(kù)啟動(dòng)時(shí),向監(jiān)聽(tīng)進(jìn)程注冊(cè) 節(jié)點(diǎn)向監(jiān)聽(tīng)進(jìn)程報(bào)告節(jié)點(diǎn)向監(jiān)聽(tīng)進(jìn)程報(bào)告CPU 的使用情況的使用情況 當(dāng)建立連接時(shí),監(jiān)聽(tīng)進(jìn)程選擇最空閑的節(jié)點(diǎn)當(dāng)建立連接時(shí),
5、監(jiān)聽(tīng)進(jìn)程選擇最空閑的節(jié)點(diǎn) 處理請(qǐng)求處理請(qǐng)求 二、二、Oracle Oracle 體系結(jié)構(gòu)體系結(jié)構(gòu) 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點(diǎn)四、典型案例分析暨優(yōu)化要點(diǎn) 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎(chǔ)優(yōu)化基礎(chǔ) 一、培訓(xùn)目的一、培訓(xùn)目的培訓(xùn)總目錄培訓(xùn)總目錄性能優(yōu)化概述性能優(yōu)化概述14 誰(shuí)來(lái)調(diào)整系統(tǒng)誰(shuí)來(lái)調(diào)整系統(tǒng) 應(yīng)用設(shè)計(jì)人員、應(yīng)用開(kāi)發(fā)人員應(yīng)用設(shè)計(jì)人員、應(yīng)用開(kāi)發(fā)人員 數(shù)據(jù)庫(kù)管理人員數(shù)據(jù)庫(kù)管理人員 什么時(shí)候調(diào)整什么時(shí)候調(diào)整 系統(tǒng)設(shè)計(jì)、系統(tǒng)開(kāi)發(fā)過(guò)程系統(tǒng)設(shè)計(jì)、系統(tǒng)開(kāi)發(fā)過(guò)程 系統(tǒng)運(yùn)行過(guò)程系統(tǒng)運(yùn)行過(guò)程 應(yīng)用系統(tǒng)類型應(yīng)用系統(tǒng)類型1
6、5 聯(lián)機(jī)事務(wù)處理(聯(lián)機(jī)事務(wù)處理(OLTPOLTP) 高吞吐量高吞吐量 增、刪、改多增、刪、改多 決策支持(決策支持(DSSDSS) 數(shù)據(jù)量大數(shù)據(jù)量大 主要用于查詢主要用于查詢 SQLSQL語(yǔ)句處理過(guò)程語(yǔ)句處理過(guò)程16 查詢語(yǔ)句處理查詢語(yǔ)句處理 DMLDML語(yǔ)句處理語(yǔ)句處理 (insertinsert、deletedelete、updateupdate) DDLDDL語(yǔ)句處理語(yǔ)句處理 (createcreate、dropdrop、alteralter)SQLSQL語(yǔ)句處理各個(gè)階段語(yǔ)句處理各個(gè)階段17SQLSQL語(yǔ)句處理必經(jīng)階段語(yǔ)句處理必經(jīng)階段18 第第1 1步步: Create a Cursor
7、 : Create a Cursor 創(chuàng)建游標(biāo)創(chuàng)建游標(biāo) 第第2 2步步: Parse the Statement : Parse the Statement 分析語(yǔ)句分析語(yǔ)句 第第5 5步步: Bind Any Variables : Bind Any Variables 綁定變量綁定變量 第第7 7步步: Run the Statement : Run the Statement 運(yùn)行語(yǔ)句運(yùn)行語(yǔ)句 第第9 9步步: Close the Cursor : Close the Cursor 關(guān)閉游標(biāo)關(guān)閉游標(biāo)SQLSQL語(yǔ)句處理可選階段語(yǔ)句處理可選階段19 并行功能并行功能 第第6 6步:步:Pa
8、rallelize the Statement Parallelize the Statement 并行執(zhí)行語(yǔ)并行執(zhí)行語(yǔ)句句 查詢語(yǔ)句查詢語(yǔ)句 第第3 3步:步:Describe Results of a Query Describe Results of a Query 描述查描述查詢的結(jié)果集詢的結(jié)果集 第第4 4步:步:Define Output of a QueryDefine Output of a Query 定義查詢的定義查詢的輸出數(shù)據(jù)輸出數(shù)據(jù) 第第8 8步:步:Fetch Rows of a QueryFetch Rows of a Query 取查詢出來(lái)的行取查詢出來(lái)的行DDL
9、DDL語(yǔ)句處理過(guò)程語(yǔ)句處理過(guò)程20 不同于不同于DMLDML語(yǔ)句和查詢語(yǔ)句的執(zhí)行語(yǔ)句和查詢語(yǔ)句的執(zhí)行 DDLDDL成功后需要對(duì)數(shù)據(jù)字典表進(jìn)行修改成功后需要對(duì)數(shù)據(jù)字典表進(jìn)行修改 分析階段還包括分析、查找數(shù)據(jù)字典分析階段還包括分析、查找數(shù)據(jù)字典 信息和執(zhí)行信息和執(zhí)行OracleOracle優(yōu)化器優(yōu)化器21 優(yōu)化優(yōu)化: : 選擇最有效的執(zhí)行計(jì)劃來(lái)執(zhí)行選擇最有效的執(zhí)行計(jì)劃來(lái)執(zhí)行 SQL SQL語(yǔ)句的過(guò)程語(yǔ)句的過(guò)程 優(yōu)化器優(yōu)化器: : 選擇執(zhí)行計(jì)劃的數(shù)據(jù)庫(kù)引擎選擇執(zhí)行計(jì)劃的數(shù)據(jù)庫(kù)引擎 基于規(guī)則(基于規(guī)則(RBORBO) 基于代價(jià)(基于代價(jià)(CBOCBO) OracleOracle統(tǒng)計(jì)信息統(tǒng)計(jì)信息22 影
10、響影響CBOCBO執(zhí)行計(jì)劃最關(guān)鍵的因素執(zhí)行計(jì)劃最關(guān)鍵的因素 分析的方法分析的方法 analyzeanalyze命令命令 dbms_statdbms_stat包包 分析的頻率分析的頻率 Oracle 10gOracle 10g自動(dòng)分析自動(dòng)分析共享共享SQLSQL語(yǔ)句語(yǔ)句23 儲(chǔ)存于共享池(儲(chǔ)存于共享池(shared_poolshared_pool) 判斷判斷SQLSQL語(yǔ)句是否與共享池中某一語(yǔ)句是否與共享池中某一SQLSQL相相同的步驟(同的步驟(CURSOR_SHARINGCURSOR_SHARING) 對(duì)所發(fā)出語(yǔ)句的文本串進(jìn)行對(duì)所發(fā)出語(yǔ)句的文本串進(jìn)行hashedhashed 將所發(fā)出語(yǔ)句的文
11、本串進(jìn)行比較將所發(fā)出語(yǔ)句的文本串進(jìn)行比較 將將SQLSQL中涉及的對(duì)象進(jìn)行比較中涉及的對(duì)象進(jìn)行比較基本概念基本概念24 ROWIDROWID 偽列,唯一。定位數(shù)據(jù)的最快方法偽列,唯一。定位數(shù)據(jù)的最快方法 索引創(chuàng)建時(shí)會(huì)記錄索引創(chuàng)建時(shí)會(huì)記錄ROWIDROWID值值 Driving TableDriving Table(驅(qū)動(dòng)表)(驅(qū)動(dòng)表): : 外層表,用于嵌套以及外層表,用于嵌套以及hashhash連接中連接中 可選擇性可選擇性: :“唯一鍵的數(shù)量唯一鍵的數(shù)量/ /表中的行數(shù)表中的行數(shù)”的比值的比值Oracle SQL Oracle SQL 執(zhí)行計(jì)劃執(zhí)行計(jì)劃25SQLSQL語(yǔ)句語(yǔ)句: :SELEC
12、T ename, job, sal, dnameSELECT ename, job, sal, dname FROM emp, dept FROM emp, dept WHERE emp.deptno = dept.deptno WHERE emp.deptno = dept.deptno AND NOT EXISTS AND NOT EXISTS ( SELECT ( SELECT * * FROM salgrade FROM salgrade WHERE emp.sal WHERE emp.sal BETWEEN losal AND hisal ); BETWEEN losal AND h
13、isal );Oracle SQL Oracle SQL 執(zhí)行計(jì)劃圖執(zhí)行計(jì)劃圖26Oracle SQL Oracle SQL 執(zhí)行計(jì)劃圖執(zhí)行計(jì)劃圖27訪問(wèn)路徑訪問(wèn)路徑28 全表掃描(全表掃描(FTSFTS) 通過(guò)通過(guò)rowidrowid的表存?。ǖ谋泶嫒。═able Access by rowidTable Access by rowid) 索引掃描(索引掃描(Index ScanIndex Scan) 索引唯一掃描索引唯一掃描(index unique scan)(index unique scan) 索引范圍掃描索引范圍掃描(index range scan)(index range sc
14、an) 索引全掃描索引全掃描(index full scan)(index full scan) 索引快速掃描索引快速掃描(index fast full scan)(index fast full scan)表連接表連接29 表連接表連接JOIN:JOIN: 將兩個(gè)表結(jié)合在一起,一次只能連接將兩個(gè)表結(jié)合在一起,一次只能連接2 2個(gè)表,個(gè)表, 表連接也可以被稱為表關(guān)聯(lián)表連接也可以被稱為表關(guān)聯(lián) 排序排序合并連接(合并連接(Sort Merge JoinSort Merge Join) 嵌套循環(huán)(嵌套循環(huán)(Nested LoopsNested Loops) 哈希連接(哈希連接(Hash JoinH
15、ash Join)排序排序- -合并連接圖合并連接圖30嵌套循環(huán)連接圖嵌套循環(huán)連接圖31連接適用情況連接適用情況32 排序排序合并連接合并連接 非等值連接、關(guān)聯(lián)列都有索引非等值連接、關(guān)聯(lián)列都有索引 嵌套連接嵌套連接 驅(qū)動(dòng)表較小驅(qū)動(dòng)表較小 哈希連接哈希連接 等值連接等值連接生成執(zhí)行計(jì)劃生成執(zhí)行計(jì)劃33 sql set autotrace onsql set autotrace on sql explain plan for select sql explain plan for select 用用dbms_systemdbms_system存儲(chǔ)過(guò)程生成執(zhí)行計(jì)劃存儲(chǔ)過(guò)程生成執(zhí)行計(jì)劃 用用PL/SQ
16、L DEVELOPERPL/SQL DEVELOPER(F5F5)干預(yù)執(zhí)行計(jì)劃干預(yù)執(zhí)行計(jì)劃_ _訪問(wèn)路徑訪問(wèn)路徑34 FULL FULL / /* *+ FULL ( table ) + FULL ( table ) * */ / 指定該表使用指定該表使用FTSFTS INDEX INDEX / /* *+ INDEX ( table index) + INDEX ( table index) * */ / 使用該表上指定的索引對(duì)表進(jìn)行索引掃描使用該表上指定的索引對(duì)表進(jìn)行索引掃描 INDEX_FFS / INDEX_FFS /* *+ INDEX_FFS ( table index) + IN
17、DEX_FFS ( table index) * */ / 使用快速全索引掃描使用快速全索引掃描 NO_INDEX / NO_INDEX /* *+ NO_INDEX ( table index) + NO_INDEX ( table index) * */ / 不使用該表上指定的索引進(jìn)行存取,仍然可以使用不使用該表上指定的索引進(jìn)行存取,仍然可以使用 其它的索引進(jìn)行索引掃描其它的索引進(jìn)行索引掃描干預(yù)執(zhí)行計(jì)劃干預(yù)執(zhí)行計(jì)劃_ _表連接表連接35 USE_NL / USE_NL /* *+ USE_NL ( tab ,tab, . ) + USE_NL ( tab ,tab, . ) * */ /
18、使用嵌套連接使用嵌套連接 USE_MERGE / USE_MERGE /* *+ USE_MERGE ( tab ,tab,.) + USE_MERGE ( tab ,tab,.) * */ / 使用排序使用排序- - -合并連接合并連接 USE_HASH / USE_HASH /* *+ USE_HASH ( tab ,tab, .) + USE_HASH ( tab ,tab, .) * */ / 使用使用HASHHASH連接連接 二、二、Oracle Oracle 體系結(jié)構(gòu)體系結(jié)構(gòu) 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點(diǎn)四、典型案
19、例分析暨優(yōu)化要點(diǎn) 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎(chǔ)優(yōu)化基礎(chǔ) 一、培訓(xùn)目的一、培訓(xùn)目的培訓(xùn)總目錄培訓(xùn)總目錄典型案例典型案例_1_137 系統(tǒng)名稱:綜合集中維護(hù)支撐系統(tǒng)系統(tǒng)名稱:綜合集中維護(hù)支撐系統(tǒng) 故障現(xiàn)象:壓力測(cè)試系統(tǒng)故障現(xiàn)象:壓力測(cè)試系統(tǒng)CPUCPU資源資源100%100% 故障分析:故障分析: 數(shù)據(jù)庫(kù)實(shí)際的數(shù)據(jù)量?jī)H為數(shù)據(jù)庫(kù)實(shí)際的數(shù)據(jù)量?jī)H為6GB6GB左右。但是每左右。但是每天卻產(chǎn)生大概天卻產(chǎn)生大概150GB150GB左右的左右的REDO LOGREDO LOG 使用使用LOGMNRLOGMNR分析分析ORACLEORACLE日志,發(fā)現(xiàn)基本上日志,發(fā)現(xiàn)基本上都為都
20、為JMSSTOREJMSSTORE表的增、刪操作。該表為表的增、刪操作。該表為WEBLOGICWEBLOGIC的消息表的消息表(CLOBCLOB字段)字段)。典型案例典型案例_1_138 系統(tǒng)名稱:綜合集中維護(hù)支撐系統(tǒng)系統(tǒng)名稱:綜合集中維護(hù)支撐系統(tǒng) 故障處理:故障處理: 運(yùn)行相關(guān)查詢業(yè)務(wù),在數(shù)據(jù)庫(kù)中查詢運(yùn)行相關(guān)查詢業(yè)務(wù),在數(shù)據(jù)庫(kù)中查詢v$sqlareav$sqlarea,JMSSTOREJMSSTORE表相關(guān)操作的頻率表相關(guān)操作的頻率 對(duì)應(yīng)用進(jìn)行跟蹤調(diào)試,查找每筆查詢業(yè)務(wù)對(duì)應(yīng)用進(jìn)行跟蹤調(diào)試,查找每筆查詢業(yè)務(wù)所運(yùn)行的所運(yùn)行的SQLSQL 最終定位問(wèn)題產(chǎn)生原因:應(yīng)用程序在每筆最終定位問(wèn)題產(chǎn)生原因:
21、應(yīng)用程序在每筆查詢后面都附帶了消息傳輸(查詢后面都附帶了消息傳輸(1010次)次) 將該將該SQLSQL屏蔽,問(wèn)題得到解決屏蔽,問(wèn)題得到解決典型案例典型案例_2_239 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故障現(xiàn)象:故障現(xiàn)象:SQLSQL語(yǔ)句執(zhí)行速度慢(語(yǔ)句執(zhí)行速度慢(5S5S)select distinct select distinct b.fd_workflowname,a.fd_fileid,a.fd_c_filetitle,a.fd_c_enddateb.fd_workflowname,a.fd_fileid,a.fd_c_filetitle,a.fd_c_enddatefrom
22、tb_model_workflow b,tb_document c,tb_engine_filecommon from tb_model_workflow b,tb_document c,tb_engine_filecommon a,tb_engine_filetache ga,tb_engine_filetache gwhere a.fd_c_workflowid=b.fd_workflowid and g.fd_fileid=a.fd_fileid and where a.fd_c_workflowid=b.fd_workflowid and g.fd_fileid=a.fd_fileid
23、 and a.fd_c_fileno=c.ida.fd_c_fileno=c.idand a.fd_c_isend=1and b.fd_workflowtype=1 and (c.security_level_code=1 and a.fd_c_isend=1and b.fd_workflowtype=1 and (c.security_level_code=1 or(c.security_level_code=2 and g.fd_ft_staffid=2)or or(c.security_level_code=2 and g.fd_ft_staffid=2)or (c.security_l
24、evel_code=3 and g.fd_ft_staffid=2)(c.security_level_code=3 and g.fd_ft_staffid=2)and a.fd_c_enddate=(sysdate-30)and a.fd_c_enddate=(sysdate-30)and a.fd_c_enddate=(sysdate+1)and (pany_id=1 or c.send_company=1) and (pany_id=1 or c.send_company=1) order by a.fd_c_enddate desc;order by a.fd_c_enddate de
25、sc;典型案例典型案例_2_240 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故障處理:故障處理: 查看該查看該sqlsql的執(zhí)行計(jì)劃的執(zhí)行計(jì)劃 tb_engine_filecommontb_engine_filecommon表為表為FTSFTS(full full table scantable scan),而且),而且costcost大大典型案例典型案例_2_241 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故障處理:故障處理: 查詢?cè)摫聿樵冊(cè)摫韋d_c_enddatefd_c_enddate的可選擇性的可選擇性,發(fā)現(xiàn)發(fā)現(xiàn)很高,因此對(duì)該字段建索引,很高,因此對(duì)該字段建索引,執(zhí)行計(jì)劃變?yōu)閳?zhí)行計(jì)劃變?yōu)?/p>
26、如下,執(zhí)行時(shí)間縮短為如下,執(zhí)行時(shí)間縮短為0.3S0.3S左右左右典型案例典型案例_3_342 系統(tǒng)名稱:商務(wù)領(lǐng)航系統(tǒng)系統(tǒng)名稱:商務(wù)領(lǐng)航系統(tǒng) 故障現(xiàn)象:出賬速度慢故障現(xiàn)象:出賬速度慢 故障處理:故障處理: 查找查找V$SESSIONV$SESSION中正在長(zhǎng)時(shí)間運(yùn)行的中正在長(zhǎng)時(shí)間運(yùn)行的SQLSQLupdate zjxc.BIZ_CUST_BALANCE t set t.warefee = 0 where t.cusid inupdate zjxc.BIZ_CUST_BALANCE t set t.warefee = 0 where t.cusid in (select b.cusid from
27、_cusid_temp_0401 b) and (select b.cusid from _cusid_temp_0401 b) and t.year_month = 201003; t.year_month = 201003; 表表biz_cusid_temp_0401biz_cusid_temp_0401為為FTSFTS,但,但cusidcusid字段建有索引字段建有索引典型案例典型案例_3_343 系統(tǒng)名稱:商務(wù)領(lǐng)航系統(tǒng)系統(tǒng)名稱:商務(wù)領(lǐng)航系統(tǒng) 故障處理:故障處理: 改寫上述改寫上述SQLSQL語(yǔ)句語(yǔ)句update _cust_balance
28、 t set t.warefee = 0 where update _cust_balance t set t.warefee = 0 where exists (select 1 from _cusid_temp_0401 b exists (select 1 from _cusid_temp_0401 b where t.cusid=b.cusid and t.year_month = 201003) ; where t.cusid=b.cusid and t.year_month = 201003) ; 表表biz_cusid_temp_0
29、401biz_cusid_temp_0401的訪問(wèn)從的訪問(wèn)從FTSFTS改變改變?yōu)樗饕ㄒ粧呙铻樗饕ㄒ粧呙?SQL SQL執(zhí)行時(shí)間縮短為執(zhí)行時(shí)間縮短為1212秒秒典型案例典型案例_4_444 系統(tǒng)名稱:系統(tǒng)名稱:CRMCRM系統(tǒng)系統(tǒng) 故障現(xiàn)象:過(guò)多的故障現(xiàn)象:過(guò)多的latch freelatch free鎖影響性能鎖影響性能 故障處理:故障處理: 查找查找latch freelatch free對(duì)應(yīng)的相關(guān)語(yǔ)句,都為對(duì)應(yīng)的相關(guān)語(yǔ)句,都為SELECT COL_VALUE FROM PUB_COLUMN_REFERENCE WHERE REFER_ID = :B1SELECT COL_VALUE
30、FROM PUB_COLUMN_REFERENCE WHERE REFER_ID = :B1 而該而該SQLSQL語(yǔ)句都為函數(shù)語(yǔ)句都為函數(shù)GET_COLUMN_VALUEGET_COLUMN_VALUE調(diào)用所產(chǎn)生調(diào)用所產(chǎn)生 查詢調(diào)用該函數(shù)的相關(guān)可疑查詢調(diào)用該函數(shù)的相關(guān)可疑SQLSQL語(yǔ)句語(yǔ)句典型案例典型案例_4_445 系統(tǒng)名稱:系統(tǒng)名稱:CRMCRM系統(tǒng)系統(tǒng) 故障處理:故障處理: 定位定位SQLSQL有相關(guān)子查詢調(diào)用了該函數(shù)有相關(guān)子查詢調(diào)用了該函數(shù) 對(duì)該對(duì)該SQLSQL進(jìn)行進(jìn)行tracetrace跟蹤,發(fā)現(xiàn)該跟蹤,發(fā)現(xiàn)該SQLSQL每執(zhí)行每執(zhí)行一次,將會(huì)調(diào)用該函數(shù)一次,將會(huì)調(diào)用該函數(shù)3835
31、538355次,也就是說(shuō)次,也就是說(shuō)latch freelatch free相應(yīng)的相應(yīng)的SQLSQL將被執(zhí)行將被執(zhí)行3835538355次次 修改相關(guān)應(yīng)用(修改相關(guān)應(yīng)用(cachecache相關(guān)刷新機(jī)制)相關(guān)刷新機(jī)制)Oracle SQLOracle SQL優(yōu)化要點(diǎn)優(yōu)化要點(diǎn)46 使用執(zhí)行計(jì)劃來(lái)分析使用執(zhí)行計(jì)劃來(lái)分析SQLSQL性能進(jìn)而進(jìn)行優(yōu)化性能進(jìn)而進(jìn)行優(yōu)化 使用使用HINTSHINTS來(lái)干預(yù)執(zhí)行計(jì)劃來(lái)干預(yù)執(zhí)行計(jì)劃 最大限度地避免全表掃描(最大限度地避免全表掃描(FTSFTS) 減少子查詢的使用減少子查詢的使用 規(guī)范規(guī)范SQLSQL語(yǔ)句的編寫,使得語(yǔ)句的編寫,使得SQLSQL語(yǔ)句能夠被共享語(yǔ)句
32、能夠被共享 減少減少SQLSQL解析的次數(shù):使用綁定變量解析的次數(shù):使用綁定變量Oracle SQLOracle SQL優(yōu)化要點(diǎn)優(yōu)化要點(diǎn)47 用索引提高效率用索引提高效率 避免在索引列上使用計(jì)算避免在索引列上使用計(jì)算 避免在索引列上使用函數(shù)轉(zhuǎn)換避免在索引列上使用函數(shù)轉(zhuǎn)換 避免改變索引列的類型避免改變索引列的類型 避免在索引列上使用避免在索引列上使用IS NULLIS NULL和和IS NOT IS NOT NULLNULL 避免在索引列上使用避免在索引列上使用like%AAAlike%AAAOracle SQLOracle SQL優(yōu)化要點(diǎn)優(yōu)化要點(diǎn)48 盡量避免盡量避免SQLSQL語(yǔ)句不必要的排
33、序操作語(yǔ)句不必要的排序操作 UNIONUNION操作要用操作要用UNION ALLUNION ALL來(lái)代替來(lái)代替 ORDER BY ORDER BY 中的字段最好建立索引中的字段最好建立索引 盡量避免使用盡量避免使用DISTINCTDISTINCT語(yǔ)句語(yǔ)句 盡量避免使用盡量避免使用(NOT) IN(NOT) IN,而使用(,而使用(NOTNOT) EXISTSEXISTS來(lái)代替來(lái)代替 對(duì)表超過(guò)對(duì)表超過(guò)10%10%以上的以上的deletedelete、updateupdate操作要重操作要重建索引。建索引。 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 二、二、Oracl
34、e Oracle 體系結(jié)構(gòu)體系結(jié)構(gòu) 四、典型案例分析暨優(yōu)化要點(diǎn)四、典型案例分析暨優(yōu)化要點(diǎn) 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎(chǔ)優(yōu)化基礎(chǔ) 一、培訓(xùn)目的一、培訓(xùn)目的培訓(xùn)總目錄培訓(xùn)總目錄SQLSQL編寫規(guī)范編寫規(guī)范_ _書(shū)寫格式書(shū)寫格式50 縮進(jìn)縮進(jìn) 對(duì)于存儲(chǔ)過(guò)程文件,縮進(jìn)為對(duì)于存儲(chǔ)過(guò)程文件,縮進(jìn)為8 8個(gè)空格個(gè)空格 對(duì)于對(duì)于Java SourceJava Source里的里的SQLSQL字符串,不可有字符串,不可有縮進(jìn),即每一行字符串不以空格開(kāi)頭縮進(jìn),即每一行字符串不以空格開(kāi)頭 空格空格 SQL SQL內(nèi)算數(shù)運(yùn)算符、邏輯運(yùn)算符連接的兩個(gè)內(nèi)算數(shù)運(yùn)算符、邏輯運(yùn)算符連接的兩個(gè)元素之間必須用空格分隔元素之間必須用空格分隔 逗號(hào)之后必須接一個(gè)空格逗號(hào)之后必須接一個(gè)空格 關(guān)鍵字、保留字和左括號(hào)間必有一個(gè)空格關(guān)鍵字、保留字和左括號(hào)間必有一個(gè)空格SQLSQL編寫規(guī)范編寫規(guī)范_ _書(shū)寫格式書(shū)寫格式51 換行換行_1_1 Select/From/Where/Or
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育培訓(xùn)基地共建合同
- 智能停車場(chǎng)系統(tǒng)設(shè)計(jì)與實(shí)施服務(wù)合同
- 國(guó)企校招入職培訓(xùn)
- 2025年滬科版選修6地理下冊(cè)月考試卷
- 第7課 我們的“過(guò)山車”(說(shuō)課稿)-2023-2024學(xué)年三年級(jí)下冊(cè)科學(xué)教科版001
- 2024版供應(yīng)商采購(gòu)協(xié)議簽訂流程詳解版B版
- 《如何成為銷售專家》課件
- 2024樓房窗戶安裝安全協(xié)議書(shū)
- 兒科臨床路徑總結(jié)
- 2024斗式提升機(jī)采購(gòu)協(xié)議
- 排污許可證辦理合同1(2025年)
- GB/T 44890-2024行政許可工作規(guī)范
- 上??颇恳豢荚囶}庫(kù)參考資料1500題-上海市地方題庫(kù)-0
- 軍工合作合同范例
- 【7地XJ期末】安徽省宣城市寧國(guó)市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試地理試題(含解析)
- 2025年中國(guó)稀土集團(tuán)總部部分崗位社會(huì)公開(kāi)招聘管理單位筆試遴選500模擬題附帶答案詳解
- 超市柜臺(tái)長(zhǎng)期出租合同范例
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測(cè)試語(yǔ)文試題(含答案)
- 【8物(科)期末】合肥市第四十五中學(xué)2023-2024學(xué)年八年級(jí)上學(xué)期期末物理試題
- 統(tǒng)編版2024-2025學(xué)年三年級(jí)語(yǔ)文上冊(cè)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試卷(含答案)
- 2024-2025學(xué)年深圳市初三適應(yīng)性考試模擬試卷歷史試卷
評(píng)論
0/150
提交評(píng)論