課程時長 1天
課程深度: 進階
上機實驗: 10%-30%
授課對象: Oracle開發人員、Oracle資料庫管理人員,應用程式開發人員
課程描述:
本課程講述Oracle資料庫實體層規劃,系統性能的監控,資料庫性能參數調整,統計資訊的收集,使用自動化調試工具優化資料庫,I/O子系統的配置與設計以及性能優化方法論等。
預備知識:
熟悉作業系統相關(含Linux)基礎知識,具備中級以上資料庫相關的基礎知識,對Oracle資料庫體系結構有深入的了解, 熟悉SQL及PL/SQL正常用法等。
認識性能問題并合理的度量性能;
掌握資料庫實體層面規劃認識規劃的重要性;
掌握從系統層面監控資料庫性能;
掌握性能優化方法,定位性能關鍵區間;
掌握常用的性能調整參數及性能調整工具;
掌握統計資訊的收集與管理。
性能優化概述
性能問題有哪些表征?
性能優化從需求分析開始
性能問題如何度量?
如何規劃資料庫實體層面?
硬體配置調整
作業系統核心設定
網絡層面的配置
存儲層面的配置
系統層面如何監控性能?
Oracle Enterprise Manager (Cloud Control)
OSWatch
Linux自帶的sysstat工具包
從哪裡着手開始優化?
分而治之的方法論
性能優化分析路線
應用程式性能剖析
資料庫性能剖析
資料庫級别有哪些性能診斷工具?
執行個體Alert日志,叢集日志
AWR(自動工作負載倉庫)
ADDM(自動資料庫調試監控)
ASH(活動會話曆史)
Advisory元件
Oracle資料庫參數調整
有哪些重要的系統參數?
優化db_cache_size
優化shared_pool_size
優化pga_aggregate_target
收集系統及對象統計資訊
系統統計資訊
對象統計資訊
如何還原曆史統計資訊?
課程名稱: SQL,PL/SQL優化法則
課程時長 2天
上機實驗: 15%-35%
授課對象: Oracle開發人員、Oracle資料庫管理人員、應用程式或系統開發人員
本課程講述SQL,PL/SQL性能優化相關的實戰技巧。包括SQL優化器模式,SQL執行計劃的擷取及解讀,尋找低效的SQL語句,編寫高效SQL語句,提示的使用,通路路徑的優化,表連接配接優化,SQL自動優化,批量SQL優化,AWR與ADDM報告解讀,PL/SQL性能優化等等。
預備知識: 具備資料庫相關的知識,SQL相關知識,PL/SQL相關知識等等
掌握SQL語句執行過程的實質,綁定變量對于解析的影響;
掌握SQL優化的步驟及其指導原則;
掌握如何擷取SQL執行計劃以及解讀執行計劃;
掌握如何通過改寫SQL以及使用提示來優化SQL;
掌握資料庫通路路徑,表連接配接相關技巧;
掌握閱讀AWR,ADDM報告相關關鍵名額;
掌握PL/SQL以及批量SQL的優化技巧;
SQL語句如何被執行?
SQL語句執行過程
硬解析與軟解析
如何使用綁定變量
SQL優化的步驟
SQL優化器的模式
自頂向下的優化方法
配置查詢優化器
SQL優化指導原則
SQL執行計劃
擷取SQL執行計劃
解釋執行計劃
尋找Top SQL
Top 10 SQL
識别低效執行的SQL語句
Top 10 by Buffer Gets
Top 10 by Physical Reads
Top 10 by Executions
編寫高效的SQL
僅提取所需的資料列
使用DECODE函數來減少處理時間
使用TRUNCATE 代替 DELETE
用WHERE子句替換HAVING子句
避免比較不比對的資料類型
避免在索引列上使用NOT運算或不等于運算(<>,!=)
避免索引列上使用 NULL 值
使用SQL提示(hint)
改變執行路徑的提示
通路方法的相關提示
表連接配接操作提示
優化資料通路路徑
尋找低效的通路路徑
全表掃描
全索引掃描
ROWID掃描
基于函數的索引
INDEX FULL SCAN vs INDEX FAST FULL SCAN
表連接配接優化
嵌套循環連接配接
哈希連接配接
合并排序連接配接
使用STA自動優化SQL
STA優化SQL用法
STA優化的本質
基于物化視圖的進階優化
物化視圖的運作機制
何時使用物化視圖
查詢重寫與重新整理
AWR,ADDM報告解讀
AWR報告提取及解讀
ADDM報告提取及解讀
Oracle Execute to Parse 執行解析比案例分析
定位PL/SQL性能瓶頸
使用PL/SQL Developer剖析PL-SQL代碼
使用PL/SQL Profiler 剖析生成html報告
優化PL/SQL
減少PL/SQL單元疊代
使用RETURNING減少SQL執行次數
使用批量SQL提高性能
認識批量SQL
FETCH 的BULK處理
FORALL的BULK處理
SELECT INTO的BULK處理