oracle海量數(shù)據(jù)庫架構(gòu)和性能優(yōu)化培訓(xùn)
培訓(xùn)目標(biāo):
Oracle海量數(shù)據(jù)庫架構(gòu)原理
Oracle的性能優(yōu)化
數(shù)據(jù)庫參數(shù)的優(yōu)化
內(nèi)存優(yōu)化
存儲優(yōu)化
海量數(shù)據(jù)庫的優(yōu)化
數(shù)據(jù)冗余
Oracle CBO優(yōu)化器決策
Oracle數(shù)據(jù)塊組成與解析
視圖和存儲過程的編寫規(guī)范
PL/SQL其他編寫技巧
培訓(xùn)內(nèi)容:
Oracle海量數(shù)據(jù)庫架構(gòu)原理
數(shù)據(jù)邏輯結(jié)構(gòu)規(guī)劃
持久存儲空間規(guī)劃
內(nèi)存規(guī)劃
物理分布
進(jìn)程劃分與關(guān)系
磁盤IO的規(guī)劃
?
Oracle的性能優(yōu)化
維護(hù)Alert_sid.log文件并使用該文件進(jìn)行優(yōu)化
告警的通知及監(jiān)視配置、閥值的設(shè)定。
后臺進(jìn)程跟蹤文件
用戶跟蹤文件
性能視圖、實(shí)用程序和工具
動(dòng)態(tài)故障排除
收集相關(guān)的性能統(tǒng)計(jì)信息
分析相關(guān)的性能視圖
使用常見的優(yōu)化工具進(jìn)行優(yōu)化
自動(dòng)工作負(fù)載儲存庫(AWR)
?
數(shù)據(jù)庫參數(shù)的優(yōu)化
Oracle數(shù)據(jù)庫中參數(shù)文件的演進(jìn)過程
參數(shù)文件的對比
參數(shù)的修改方式介紹
數(shù)據(jù)庫啟動(dòng)過程時(shí)的內(nèi)部原理解析
?
內(nèi)存優(yōu)化
學(xué)習(xí)什么是內(nèi)存最基本的優(yōu)化方法
學(xué)習(xí)如何設(shè)定數(shù)據(jù)高速緩存區(qū)的大小
學(xué)習(xí)如何設(shè)定共享池的內(nèi)存
學(xué)習(xí)如何設(shè)定PGA的內(nèi)存調(diào)
學(xué)習(xí)如何設(shè)定測量緩存區(qū)的命中率
學(xué)習(xí)如何定義多池、使用多池、啟用多池
掌握使用調(diào)優(yōu)庫高速緩存的診斷工具
掌握使用調(diào)優(yōu)數(shù)據(jù)字典高速緩存的診斷工具
掌握使用重作日志緩沖區(qū)的診斷工具
?
存儲優(yōu)化
了解Oracle的存儲層次結(jié)構(gòu)
分析數(shù)據(jù)庫段、區(qū)、塊的存儲設(shè)置對于數(shù)據(jù)庫的數(shù)據(jù)訪問的性能影響
掌握HWM的含義和對性能的影響
找出存儲不合理的表和索引,將這些對象重組,從而得到更好的訪問性能
設(shè)置合理的塊空間參數(shù),以減少I/O數(shù)量并且合理的存儲數(shù)據(jù)
注意行鏈與行遷移對性能的影響,解決行遷移
?
海量數(shù)據(jù)庫的優(yōu)化
數(shù)據(jù)冗余
?
數(shù)據(jù)鏡像
讀寫分離
水平擴(kuò)展與負(fù)載均衡
垂直分割與水平分割
內(nèi)存數(shù)據(jù)庫
?
Oracle CBO優(yōu)化器決策
統(tǒng)計(jì)信息的收集
事件10053
跟蹤文件分析
優(yōu)化器參數(shù)設(shè)置
訪問路徑成本cost計(jì)算比較
CBO各種類型成本計(jì)算公式如下
統(tǒng)計(jì)信息對CBO的影響
?
Oracle數(shù)據(jù)塊組成與解析
數(shù)據(jù)塊空閑空間的管理
db_block_size大小設(shè)置與性能
db_multiblock_read_count的優(yōu)化
熱點(diǎn)塊問題的優(yōu)化
?
視圖和存儲過程的編寫規(guī)范
連續(xù)易讀容易管理的書寫方式
命名規(guī)范
程序開始處規(guī)范化
end語句中寫入結(jié)束module的名稱
使用動(dòng)詞短語命名存儲過程,名詞命名函數(shù)短語
使用labels命名塊和循環(huán)
顯式使用括號
代碼豎向?qū)R
?
PL/SQL其他編寫技巧
使用 %TYPE 和 %ROWTYPE.來定義變量
使用CONSTANT 定義不變的變量
不要過度使用變量
清除沒有使用的變量
程序異常結(jié)束的時(shí)候?qū)ψ兞窟M(jìn)行清理
避免變量、數(shù)據(jù)類型的隱式轉(zhuǎn)換
使用 ELSIF 來提高語句效率
RAISE 用來觸發(fā)錯(cuò)誤異常,而不是用來進(jìn)行流程控制
?
?