![公司Oracle培訓課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/40281f1d-4c26-4d20-8bd2-aae69ce60f25/40281f1d-4c26-4d20-8bd2-aae69ce60f251.gif)
![公司Oracle培訓課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/40281f1d-4c26-4d20-8bd2-aae69ce60f25/40281f1d-4c26-4d20-8bd2-aae69ce60f252.gif)
![公司Oracle培訓課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/40281f1d-4c26-4d20-8bd2-aae69ce60f25/40281f1d-4c26-4d20-8bd2-aae69ce60f253.gif)
![公司Oracle培訓課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/40281f1d-4c26-4d20-8bd2-aae69ce60f25/40281f1d-4c26-4d20-8bd2-aae69ce60f254.gif)
![公司Oracle培訓課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/40281f1d-4c26-4d20-8bd2-aae69ce60f25/40281f1d-4c26-4d20-8bd2-aae69ce60f255.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 二、二、Oracle Oracle 體系結構體系結構 五、五、Oracle SQLOracle SQL編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點四、典型案例分析暨優(yōu)化要點 三、三、Oracle SQLOracle SQL優(yōu)化基礎優(yōu)化基礎 一、培訓目的一、培訓目的培訓總目錄培訓總目錄Linux公社(公社(LinuxIDC.com)pLinux公社(公社(LinuxIDC.com)于)于2006年年9月月25日注冊并開通網站,日注冊并開通網站,Linux現(xiàn)在已經成為現(xiàn)在已經成為一種廣受關注和支持的一種操作系統(tǒng),一種廣受關注和支持的一種操作系統(tǒng),IDC是互聯(lián)網數(shù)據(jù)中心,是互聯(lián)網數(shù)據(jù)中心,Linu
2、xIDC就是關于就是關于Linux的數(shù)據(jù)中心。的數(shù)據(jù)中心。pLinux公社公社是專業(yè)的是專業(yè)的Linux系統(tǒng)門戶網站,實系統(tǒng)門戶網站,實時發(fā)布最新時發(fā)布最新Linux資訊,包括資訊,包括Linux、Ubuntu、Fedora、RedHat、紅旗、紅旗Linux、Linux教程、教程、Linux認證、認證、SUSE Linux、Android、Oracle、Hadoop等技術。等技術。培訓目的培訓目的培訓目標培訓內容課堂交互 本次課程大約需要3個小時,課后,我們會留半個小時與大家進行探討,希望在 座各位在培訓過程中記錄下自己的問題; Oracle 體系結構; Oracle SQL優(yōu)化及編寫規(guī)范;
3、 了解Oracle 體系架構; 掌握Oracle SQL優(yōu)化基本方法; Oracle SQL優(yōu)化典型案例分析; 二、二、Oracle Oracle 體系結構體系結構 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點四、典型案例分析暨優(yōu)化要點 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎優(yōu)化基礎 一、培訓目的一、培訓目的培訓總目錄培訓總目錄OracleOracle服務器架構服務器架構OracleOracle內存體系架構內存體系架構OracleOracle進程體系架構進程體系架構 用戶進程用戶進程:在數(shù)據(jù)庫用戶或批處理進程連接到在數(shù)據(jù)
4、庫用戶或批處理進程連接到 Oracle DB 時啟動時啟動 服務器進程服務器進程:連接到連接到Oracle 實例,在用戶建立實例,在用戶建立 會話時啟動會話時啟動 后臺進程后臺進程:在在Oracle 實例啟動時啟動實例啟動時啟動OracleOracle存儲體系架構存儲體系架構OracleOracle高可用性高可用性_ _雙機熱備雙機熱備優(yōu)點優(yōu)點 管理簡單管理簡單 相對較為穩(wěn)定相對較為穩(wěn)定缺點缺點 切換間存在停頓切換間存在停頓 備機空閑備機空閑 無擴展性無擴展性OracleOracle高可用性高可用性_ _雙機熱備切換雙機熱備切換OracleOracle高可用性高可用性_RAC_RAC優(yōu)點優(yōu)點
5、良好的可伸縮性、可擴展性良好的可伸縮性、可擴展性 高可用性高可用性 新進的新進的Cache Fusion技術技術 負載均衡負載均衡缺點缺點 管理復雜管理復雜 對網絡要求高對網絡要求高Linux公社(公社(LinuxIDC.com)pLinux公社(公社(LinuxIDC.com)于)于2006年年9月月25日注冊并開通網站,日注冊并開通網站,Linux現(xiàn)在已經成為現(xiàn)在已經成為一種廣受關注和支持的一種操作系統(tǒng),一種廣受關注和支持的一種操作系統(tǒng),IDC是互聯(lián)網數(shù)據(jù)中心,是互聯(lián)網數(shù)據(jù)中心,LinuxIDC就是關于就是關于Linux的數(shù)據(jù)中心。的數(shù)據(jù)中心。pLinux公社公社是專業(yè)的是專業(yè)的Linux
6、系統(tǒng)門戶網站,實系統(tǒng)門戶網站,實時發(fā)布最新時發(fā)布最新Linux資訊,包括資訊,包括Linux、Ubuntu、Fedora、RedHat、紅旗、紅旗Linux、Linux教程、教程、Linux認證、認證、SUSE Linux、Android、Oracle、Hadoop等技術。等技術。OracleOracle高可用性高可用性_RAC_RAC將應用和用戶自動而透明地重新連接到將應用和用戶自動而透明地重新連接到另一個系統(tǒng)另一個系統(tǒng)登錄的上下文可被保持登錄的上下文可被保持應用查詢不會中斷應用查詢不會中斷當集群內節(jié)點當集群內節(jié)點 A A 失失敗敗, , 用戶被轉移用戶被轉移OracleOracle RAC
7、RAC負載均衡負載均衡 數(shù)據(jù)庫啟動時,向監(jiān)聽進程注冊數(shù)據(jù)庫啟動時,向監(jiān)聽進程注冊 節(jié)點向監(jiān)聽進程報告節(jié)點向監(jiān)聽進程報告CPU 的使用情況的使用情況 當建立連接時,監(jiān)聽進程選擇最空閑的節(jié)點當建立連接時,監(jiān)聽進程選擇最空閑的節(jié)點 處理請求處理請求 二、二、Oracle Oracle 體系結構體系結構 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點四、典型案例分析暨優(yōu)化要點 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎優(yōu)化基礎 一、培訓目的一、培訓目的培訓總目錄培訓總目錄性能優(yōu)化概述性能優(yōu)化概述16 誰來調整系統(tǒng)誰來調整系統(tǒng) 應用設計
8、人員、應用開發(fā)人員應用設計人員、應用開發(fā)人員 數(shù)據(jù)庫管理人員數(shù)據(jù)庫管理人員 什么時候調整什么時候調整 系統(tǒng)設計、系統(tǒng)開發(fā)過程系統(tǒng)設計、系統(tǒng)開發(fā)過程 系統(tǒng)運行過程系統(tǒng)運行過程 應用系統(tǒng)類型應用系統(tǒng)類型17 聯(lián)機事務處理(聯(lián)機事務處理(OLTPOLTP) 高吞吐量高吞吐量 增、刪、改多增、刪、改多 決策支持(決策支持(DSSDSS) 數(shù)據(jù)量大數(shù)據(jù)量大 主要用于查詢主要用于查詢 SQLSQL語句處理過程語句處理過程18 查詢語句處理查詢語句處理 DMLDML語句處理語句處理 (insertinsert、deletedelete、updateupdate) DDLDDL語句處理語句處理 (create
9、create、dropdrop、alteralter)SQLSQL語句處理各個階段語句處理各個階段19SQLSQL語句處理必經階段語句處理必經階段20 第第1 1步步: Create a Cursor : Create a Cursor 創(chuàng)建游標創(chuàng)建游標 第第2 2步步: Parse the Statement : Parse the Statement 分析語句分析語句 第第5 5步步: Bind Any Variables : Bind Any Variables 綁定變量綁定變量 第第7 7步步: Run the Statement : Run the Statement 運行語句運行語
10、句 第第9 9步步: Close the Cursor : Close the Cursor 關閉游標關閉游標SQLSQL語句處理可選階段語句處理可選階段21 并行功能并行功能 第第6 6步:步:Parallelize the Statement Parallelize the Statement 并行執(zhí)行語并行執(zhí)行語句句 查詢語句查詢語句 第第3 3步:步:Describe Results of a Query Describe Results of a Query 描述查描述查詢的結果集詢的結果集 第第4 4步:步:Define Output of a QueryDefine Output
11、 of a Query 定義查詢的定義查詢的輸出數(shù)據(jù)輸出數(shù)據(jù) 第第8 8步:步:Fetch Rows of a QueryFetch Rows of a Query 取查詢出來的行取查詢出來的行DDLDDL語句處理過程語句處理過程22 不同于不同于DMLDML語句和查詢語句的執(zhí)行語句和查詢語句的執(zhí)行 DDLDDL成功后需要對數(shù)據(jù)字典表進行修改成功后需要對數(shù)據(jù)字典表進行修改 分析階段還包括分析、查找數(shù)據(jù)字典分析階段還包括分析、查找數(shù)據(jù)字典 信息和執(zhí)行信息和執(zhí)行OracleOracle優(yōu)化器優(yōu)化器23 優(yōu)化優(yōu)化: : 選擇最有效的執(zhí)行計劃來執(zhí)行選擇最有效的執(zhí)行計劃來執(zhí)行 SQL SQL語句的過程語
12、句的過程 優(yōu)化器優(yōu)化器: : 選擇執(zhí)行計劃的數(shù)據(jù)庫引擎選擇執(zhí)行計劃的數(shù)據(jù)庫引擎 基于規(guī)則(基于規(guī)則(RBORBO) 基于代價(基于代價(CBOCBO) OracleOracle統(tǒng)計信息統(tǒng)計信息24 影響影響CBOCBO執(zhí)行計劃最關鍵的因素執(zhí)行計劃最關鍵的因素 分析的方法分析的方法 analyzeanalyze命令命令 dbms_statdbms_stat包包 分析的頻率分析的頻率 Oracle 10gOracle 10g自動分析自動分析共享共享SQLSQL語句語句25 儲存于共享池(儲存于共享池(shared_poolshared_pool) 判斷判斷SQLSQL語句是否與共享池中某一語句是否
13、與共享池中某一SQLSQL相相同的步驟(同的步驟(CURSOR_SHARINGCURSOR_SHARING) 對所發(fā)出語句的文本串進行對所發(fā)出語句的文本串進行hashedhashed 將所發(fā)出語句的文本串進行比較將所發(fā)出語句的文本串進行比較 將將SQLSQL中涉及的對象進行比較中涉及的對象進行比較基本概念基本概念26 ROWIDROWID 偽列,唯一。定位數(shù)據(jù)的最快方法偽列,唯一。定位數(shù)據(jù)的最快方法 索引創(chuàng)建時會記錄索引創(chuàng)建時會記錄ROWIDROWID值值 Driving TableDriving Table(驅動表)(驅動表): : 外層表,用于嵌套以及外層表,用于嵌套以及hashhash連
14、接中連接中 可選擇性可選擇性: : “唯一鍵的數(shù)量唯一鍵的數(shù)量/ /表中的行數(shù)表中的行數(shù)”的比值的比值Oracle SQL Oracle SQL 執(zhí)行計劃執(zhí)行計劃27 SQLSQL語句語句: :SELECT SELECT enameename, job, , job, salsal, , dnamedname FROM FROM empemp, , deptdept WHERE WHERE emp.deptnoemp.deptno = = dept.deptnodept.deptno AND NOT EXISTS AND NOT EXISTS ( SELECT ( SELECT * * FRO
15、M FROM salgradesalgrade WHERE WHERE emp.salemp.sal BETWEEN BETWEEN losallosal AND AND hisalhisal ); );Oracle SQL Oracle SQL 執(zhí)行計劃圖執(zhí)行計劃圖28Oracle SQL Oracle SQL 執(zhí)行計劃圖執(zhí)行計劃圖29Linux公社(公社(LinuxIDC.com)pLinux公社(公社(LinuxIDC.com)于)于2006年年9月月25日注冊并開通網站,日注冊并開通網站,Linux現(xiàn)在已經成為現(xiàn)在已經成為一種廣受關注和支持的一種操作系統(tǒng),一種廣受關注和支持的一種操作系
16、統(tǒng),IDC是互聯(lián)網數(shù)據(jù)中心,是互聯(lián)網數(shù)據(jù)中心,LinuxIDC就是關于就是關于Linux的數(shù)據(jù)中心。的數(shù)據(jù)中心。pLinux公社公社是專業(yè)的是專業(yè)的Linux系統(tǒng)門戶網站,實系統(tǒng)門戶網站,實時發(fā)布最新時發(fā)布最新Linux資訊,包括資訊,包括Linux、Ubuntu、Fedora、RedHat、紅旗、紅旗Linux、Linux教程、教程、Linux認證、認證、SUSE Linux、Android、Oracle、Hadoop等技術。等技術。訪問路徑訪問路徑31 全表掃描(全表掃描(FTSFTS) 通過通過rowidrowid的表存?。ǖ谋泶嫒。═able Access by rowidTable
17、Access by rowid) 索引掃描(索引掃描(Index ScanIndex Scan) 索引唯一掃描索引唯一掃描(index unique scan)(index unique scan) 索引范圍掃描索引范圍掃描(index range scan)(index range scan) 索引全掃描索引全掃描(index full scan)(index full scan) 索引快速掃描索引快速掃描(index fast full scan)(index fast full scan)表連接表連接32 表連接表連接JOIN:JOIN: 將兩個表結合在一起,一次只能連接將兩個表結合在一
18、起,一次只能連接2 2個表,個表, 表連接也可以被稱為表關聯(lián)表連接也可以被稱為表關聯(lián) 排序排序合并連接(合并連接(Sort Merge JoinSort Merge Join) 嵌套循環(huán)(嵌套循環(huán)(Nested LoopsNested Loops) 哈希連接(哈希連接(Hash JoinHash Join)排序排序- -合并連接圖合并連接圖33嵌套循環(huán)連接圖嵌套循環(huán)連接圖34連接適用情況連接適用情況35 排序排序合并連接合并連接 非等值連接、關聯(lián)列都有索引非等值連接、關聯(lián)列都有索引 嵌套連接嵌套連接 驅動表較小驅動表較小 哈希連接哈希連接 等值連接等值連接生成執(zhí)行計劃生成執(zhí)行計劃36 sql
19、set autotrace onsql set autotrace on sql explain plan for select sql explain plan for select 用用dbms_systemdbms_system存儲過程生成執(zhí)行計劃存儲過程生成執(zhí)行計劃 用用PL/SQL DEVELOPERPL/SQL DEVELOPER(F5F5)干預執(zhí)行計劃干預執(zhí)行計劃_ _訪問路徑訪問路徑37 FULL FULL / /* *+ FULL ( table ) + FULL ( table ) * */ / 指定該表使用指定該表使用FTSFTS INDEX INDEX / /* *+
20、INDEX ( table index) + INDEX ( table index) * */ / 使用該表上指定的索引對表進行索引掃描使用該表上指定的索引對表進行索引掃描 INDEX_FFS / INDEX_FFS /* *+ INDEX_FFS ( table index) + INDEX_FFS ( table index) * */ / 使用快速全索引掃描使用快速全索引掃描 NO_INDEX / NO_INDEX /* *+ NO_INDEX ( table index) + NO_INDEX ( table index) * */ / 不使用該表上指定的索引進行存取,仍然可以使用不
21、使用該表上指定的索引進行存取,仍然可以使用 其它的索引進行索引掃描其它的索引進行索引掃描干預執(zhí)行計劃干預執(zhí)行計劃_ _表連接表連接38 USE_NL / USE_NL /* *+ USE_NL ( tab ,tab, . ) + USE_NL ( tab ,tab, . ) * */ / 使用嵌套連接使用嵌套連接 USE_MERGE / USE_MERGE /* *+ USE_MERGE ( tab ,tab,.) + USE_MERGE ( tab ,tab,.) * */ / 使用排序使用排序- - -合并連接合并連接 USE_HASH / USE_HASH /* *+ USE_HASH
22、( tab ,tab, .) + USE_HASH ( tab ,tab, .) * */ / 使用使用HASHHASH連接連接 二、二、Oracle Oracle 體系結構體系結構 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 四、典型案例分析暨優(yōu)化要點四、典型案例分析暨優(yōu)化要點 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎優(yōu)化基礎 一、培訓目的一、培訓目的培訓總目錄培訓總目錄典型案例典型案例_1_140 系統(tǒng)名稱:綜合集中維護支撐系統(tǒng)系統(tǒng)名稱:綜合集中維護支撐系統(tǒng) 故障現(xiàn)象:壓力測試系統(tǒng)故障現(xiàn)象:壓力測試系統(tǒng)CPUCPU資源資源100%100% 故障
23、分析:故障分析: 數(shù)據(jù)庫實際的數(shù)據(jù)量僅為數(shù)據(jù)庫實際的數(shù)據(jù)量僅為6GB6GB左右。但是每左右。但是每天卻產生大概天卻產生大概150GB150GB左右的左右的REDO LOGREDO LOG 使用使用LOGMNRLOGMNR分析分析ORACLEORACLE日志,發(fā)現(xiàn)基本上日志,發(fā)現(xiàn)基本上都為都為JMSSTOREJMSSTORE表的增、刪操作。該表為表的增、刪操作。該表為WEBLOGICWEBLOGIC的消息表的消息表(CLOBCLOB字段)字段)。Linux公社(公社(LinuxIDC.com)pLinux公社(公社(LinuxIDC.com)于)于2006年年9月月25日注冊并開通網站,日注冊并
24、開通網站,Linux現(xiàn)在已經成為現(xiàn)在已經成為一種廣受關注和支持的一種操作系統(tǒng),一種廣受關注和支持的一種操作系統(tǒng),IDC是互聯(lián)網數(shù)據(jù)中心,是互聯(lián)網數(shù)據(jù)中心,LinuxIDC就是關于就是關于Linux的數(shù)據(jù)中心。的數(shù)據(jù)中心。pLinux公社公社是專業(yè)的是專業(yè)的Linux系統(tǒng)門戶網站,實系統(tǒng)門戶網站,實時發(fā)布最新時發(fā)布最新Linux資訊,包括資訊,包括Linux、Ubuntu、Fedora、RedHat、紅旗、紅旗Linux、Linux教程、教程、Linux認證、認證、SUSE Linux、Android、Oracle、Hadoop等技術。等技術。典型案例典型案例_1_142 系統(tǒng)名稱:綜合集中維護
25、支撐系統(tǒng)系統(tǒng)名稱:綜合集中維護支撐系統(tǒng) 故障處理:故障處理: 運行相關查詢業(yè)務,在數(shù)據(jù)庫中查詢運行相關查詢業(yè)務,在數(shù)據(jù)庫中查詢v$sqlareav$sqlarea,JMSSTOREJMSSTORE表相關操作的頻率表相關操作的頻率 對應用進行跟蹤調試,查找每筆查詢業(yè)務對應用進行跟蹤調試,查找每筆查詢業(yè)務所運行的所運行的SQLSQL 最終定位問題產生原因:應用程序在每筆最終定位問題產生原因:應用程序在每筆查詢后面都附帶了消息傳輸(查詢后面都附帶了消息傳輸(1010次)次) 將該將該SQLSQL屏蔽,問題得到解決屏蔽,問題得到解決典型案例典型案例_2_243 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故
26、障現(xiàn)象:故障現(xiàn)象:SQLSQL語句執(zhí)行速度慢(語句執(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 from tb_model_workflowtb_model_workflow b,tb_documentb,tb_document c,tb_engine_filecommonc,tb_engine_file
27、common a,tb_engine_filetachea,tb_engine_filetache g gwhere where a.fd_c_workflowida.fd_c_workflowid= =b.fd_workflowidb.fd_workflowid and and g.fd_fileidg.fd_fileid= =a.fd_fileida.fd_fileid and and a.fd_c_fileno=c.ida.fd_c_fileno=c.idand and a.fd_c_isenda.fd_c_isend=1and =1and b.fd_workflowtypeb.fd_w
28、orkflowtype=1 and (=1 and (c.security_level_codec.security_level_code=1 =1 or(or(c.security_level_codec.security_level_code=2 and =2 and g.fd_ft_staffidg.fd_ft_staffid=2)or =2)or ( (c.security_level_codec.security_level_code=3 and =3 and g.fd_ft_staffidg.fd_ft_staffid=2)=2)and and a.fd_c_enddatea.fd
29、_c_enddate=(sysdate-30)and =(sysdate-30)and a.fd_c_enddatea.fd_c_enddate=(sysdate+1)=(sysdate+1)and (and (pany_pany_id=1 or =1 or c.send_companyc.send_company=1) =1) order by order by a.fd_c_enddatea.fd_c_enddate descdesc; ;典型案例典型案例_2_244 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故障處理:故障處理: 查看該查看該sqlsql的執(zhí)行計劃的執(zhí)行計劃 tb_engin
30、e_filecommontb_engine_filecommon表為表為FTSFTS(full full table scantable scan),而且),而且costcost大大典型案例典型案例_2_245 系統(tǒng)名稱:系統(tǒng)名稱:OAOA系統(tǒng)系統(tǒng) 故障處理:故障處理: 查詢該表查詢該表fd_c_enddatefd_c_enddate的可選擇性的可選擇性,發(fā)現(xiàn)發(fā)現(xiàn)很高,因此對該字段建索引,很高,因此對該字段建索引,執(zhí)行計劃變?yōu)閳?zhí)行計劃變?yōu)槿缦拢瑘?zhí)行時間縮短為如下,執(zhí)行時間縮短為0.3S0.3S左右左右典型案例典型案例_3_346 系統(tǒng)名稱:商務領航系統(tǒng)系統(tǒng)名稱:商務領航系統(tǒng) 故障現(xiàn)象:出賬速度
31、慢故障現(xiàn)象:出賬速度慢 故障處理:故障處理: 查找查找V$SESSIONV$SESSION中正在長時間運行的中正在長時間運行的SQLSQLupdate update zjxc.BIZ_CUST_BALANCEzjxc.BIZ_CUST_BALANCE t set t set t.warefeet.warefee = 0 where = 0 where t.cusidt.cusid in in (select (select b.cusidb.cusid from _cusid_temp_0401 b) and from _cusid_temp_0401 b) a
32、nd t.year_montht.year_month = 201003; = 201003; 表表biz_cusid_temp_0401biz_cusid_temp_0401為為FTSFTS,但,但cusidcusid字段建有索引字段建有索引典型案例典型案例_3_347 系統(tǒng)名稱:商務領航系統(tǒng)系統(tǒng)名稱:商務領航系統(tǒng) 故障處理:故障處理: 改寫上述改寫上述SQLSQL語句語句update update _cust__cust_balance t set t set t.warefeet.warefee = 0 where = 0 where exi
33、sts (select 1 from _cusid_temp_0401 b exists (select 1 from _cusid_temp_0401 b where where t.cusidt.cusid= =b.cusidb.cusid and and t.year_montht.year_month = 201003) ; = 201003) ; 表表biz_cusid_temp_0401biz_cusid_temp_0401的訪問從的訪問從FTSFTS改變改變?yōu)樗饕ㄒ粧呙铻樗饕ㄒ粧呙?SQL SQL執(zhí)行時間縮短為執(zhí)行時間縮短為1212秒秒典型案例
34、典型案例_4_448 系統(tǒng)名稱:系統(tǒng)名稱:CRMCRM系統(tǒng)系統(tǒng) 故障現(xiàn)象:過多的故障現(xiàn)象:過多的latch freelatch free鎖影響性能鎖影響性能 故障處理:故障處理: 查找查找latch freelatch free對應的相關語句,都為對應的相關語句,都為SELECT COL_VALUE FROM PUB_COLUMN_REFERENCE WHERE REFER_ID = :B1SELECT COL_VALUE FROM PUB_COLUMN_REFERENCE WHERE REFER_ID = :B1 而該而該SQLSQL語句都為函數(shù)語句都為函數(shù)GET_COLUMN_VALUEG
35、ET_COLUMN_VALUE調用所產生調用所產生 查詢調用該函數(shù)的相關可疑查詢調用該函數(shù)的相關可疑SQLSQL語句語句典型案例典型案例_4_449 系統(tǒng)名稱:系統(tǒng)名稱:CRMCRM系統(tǒng)系統(tǒng) 故障處理:故障處理: 定位定位SQLSQL有相關子查詢調用了該函數(shù)有相關子查詢調用了該函數(shù) 對該對該SQLSQL進行進行tracetrace跟蹤,發(fā)現(xiàn)該跟蹤,發(fā)現(xiàn)該SQLSQL每執(zhí)行每執(zhí)行一次,將會調用該函數(shù)一次,將會調用該函數(shù)3835538355次,也就是說次,也就是說latch freelatch free相應的相應的SQLSQL將被執(zhí)行將被執(zhí)行3835538355次次 修改相關應用(修改相關應用(c
36、achecache相關刷新機制)相關刷新機制)Oracle SQLOracle SQL優(yōu)化要點優(yōu)化要點50 使用執(zhí)行計劃來分析使用執(zhí)行計劃來分析SQLSQL性能進而進行優(yōu)化性能進而進行優(yōu)化 使用使用HINTSHINTS來干預執(zhí)行計劃來干預執(zhí)行計劃 最大限度地避免全表掃描(最大限度地避免全表掃描(FTSFTS) 減少子查詢的使用減少子查詢的使用 規(guī)范規(guī)范SQLSQL語句的編寫,使得語句的編寫,使得SQLSQL語句能夠被共享語句能夠被共享 減少減少SQLSQL解析的次數(shù):使用綁定變量解析的次數(shù):使用綁定變量Oracle SQLOracle SQL優(yōu)化要點優(yōu)化要點51 用索引提高效率用索引提高效率
37、避免在索引列上使用計算避免在索引列上使用計算 避免在索引列上使用函數(shù)轉換避免在索引列上使用函數(shù)轉換 避免改變索引列的類型避免改變索引列的類型 避免在索引列上使用避免在索引列上使用IS NULLIS NULL和和IS NOT IS NOT NULLNULL 避免在索引列上使用避免在索引列上使用like%AAAlike%AAAOracle SQLOracle SQL優(yōu)化要點優(yōu)化要點52 盡量避免盡量避免SQLSQL語句不必要的排序操作語句不必要的排序操作 UNIONUNION操作要用操作要用UNION ALLUNION ALL來代替來代替 ORDER BY ORDER BY 中的字段最好建立索引中
38、的字段最好建立索引 盡量避免使用盡量避免使用DISTINCTDISTINCT語句語句 盡量避免使用盡量避免使用(NOT) IN(NOT) IN,而使用(,而使用(NOTNOT) EXISTSEXISTS來代來代替替 對表超過對表超過10%10%以上的以上的deletedelete、updateupdate操作要重操作要重建索引。建索引。 五、五、Oracle SQL Oracle SQL 編寫規(guī)范編寫規(guī)范 二、二、Oracle Oracle 體系結構體系結構 四、典型案例分析暨優(yōu)化要點四、典型案例分析暨優(yōu)化要點 三、三、Oracle SQL Oracle SQL 優(yōu)化基礎優(yōu)化基礎 一、培訓目的
39、一、培訓目的培訓總目錄培訓總目錄SQLSQL編寫規(guī)范編寫規(guī)范_ _書寫格式書寫格式54 縮進縮進 對于存儲過程文件,縮進為對于存儲過程文件,縮進為8 8個空格個空格 對于對于Java SourceJava Source里的里的SQLSQL字符串,不可有字符串,不可有縮進,即每一行字符串不以空格開頭縮進,即每一行字符串不以空格開頭 空格空格 SQL SQL內算數(shù)運算符、邏輯運算符連接的兩個內算數(shù)運算符、邏輯運算符連接的兩個元素之間必須用空格分隔元素之間必須用空格分隔 逗號之后必須接一個空格逗號之后必須接一個空格 關鍵字、保留字和左括號間必有一個空格關鍵字、保留字和左括號間必有一個空格SQLSQL
40、編寫規(guī)范編寫規(guī)范_ _書寫格式書寫格式55 換行換行_1_1 Select/From/Where/Order by/Group by Select/From/Where/Order by/Group by等子句必須另起一行寫等子句必須另起一行寫 Select Select子句內容如果只有一項,與子句內容如果只有一項,與SelectSelect同行寫同行寫 Select Select子句內容如果多于一項,每一項單子句內容如果多于一項,每一項單獨占一行,在對應獨占一行,在對應SelectSelect的基礎上向右縮進的基礎上向右縮進8 8個空格(個空格(Java sourceJava source無
41、縮進)無縮進) Linux公社(公社(LinuxIDC.com)pLinux公社(公社(LinuxIDC.com)于)于2006年年9月月25日注冊并開通網站,日注冊并開通網站,Linux現(xiàn)在已經成為現(xiàn)在已經成為一種廣受關注和支持的一種操作系統(tǒng),一種廣受關注和支持的一種操作系統(tǒng),IDC是互聯(lián)網數(shù)據(jù)中心,是互聯(lián)網數(shù)據(jù)中心,LinuxIDC就是關于就是關于Linux的數(shù)據(jù)中心。的數(shù)據(jù)中心。pLinux公社公社是專業(yè)的是專業(yè)的Linux系統(tǒng)門戶網站,實系統(tǒng)門戶網站,實時發(fā)布最新時發(fā)布最新Linux資訊,包括資訊,包括Linux、Ubuntu、Fedora、RedHat、紅旗、紅旗Linux、Linux教程、教程、Linux認證、認證、SUSE Linux、Android、Oracle、Hadoop等技術。等技術。SQLSQL編寫規(guī)范編寫規(guī)范_ _書寫格式書寫格式57 換行換行_2_2 From From子句內容如果只有一項,與子句內容如果只有一項,與FromFrom同行同行 From
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場泔水清運專項服務合同
- 二零二五年度寶石匠人珠寶店珠寶行業(yè)法律咨詢合同
- 廚衛(wèi)改造工程合同樣本
- 旅游規(guī)劃與設計行業(yè)智能化旅游目的地打造方案
- 電子通訊網絡工程指南
- 職業(yè)病診斷與鑒定作業(yè)指導書
- 三農產品流通體系國際化與走出去戰(zhàn)略作業(yè)指導書
- 三農田灌溉管理方案
- 多應用臨時借款合同常用
- 房產歸男方無債務離婚協(xié)議書
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 2024年認證行業(yè)法律法規(guī)及認證基礎知識 CCAA年度確認 試題與答案
- 2022屆“一本、二本臨界生”動員大會(2023.5)
- 肝臟炎性假瘤的影像學表現(xiàn)培訓課件
- 國家行政機關公文格式課件
- 耐壓絕緣硅橡膠涂料噴涂作業(yè)指導書
- 小學《體育與健康》 人教版 三年級 乒乓球運動 -乒乓球介紹與球性教學 第一節(jié)課PPT 課件
- 急性心梗的護理業(yè)務學習課件
- 導向標識系統(tǒng)設計(二)課件
- 聚焦:如何推進教育治理體系和治理能力現(xiàn)代化
- 化工儀表自動化【第四章】自動控制儀表
評論
0/150
提交評論