目錄
前言
第1章Oracle性能優化漫談1
1.1從生活場景漫談性能優化1
1.1.1從一個真實病例說起1
1.1.2如何改善寶馬汽車的運行速度2
1.2性能優化目標的確定和衡量3
1.2.1性能優化的範疇或優化對象確定4
1.2.2性能優化目標的用戶期望管理4
1.2.3性能優化的目標衡量5
1.3吞吐量和響應時間6
1.3.1吞吐量6
1.3.2響應時間7
1.3.3吞吐量和響應時間關係麯綫8
1.3.4醫院掛號窗口的吞吐量和響應時間麯綫8
1.3.5tpcc測試的吞吐量和響應時間麯綫10
1.3.6磁盤I/O係統吞吐量和響應時間麯綫10
1.4Oracle性能優化工作的分類12
1.4.1上綫優化或從未達到過性能期望的係統優化12
1.4.2響應速度逐步變慢的係統優化13
1.4.3運行過程中突然變慢的係統優化13
1.4.4突然變慢,持續一段時間後又恢復正常的業務係統優化14
1.4.5基於降低資源消耗的係統優化14
1.4.6預防性日常性能優化14
1.5測量和變化15
1.5.1測量和性能15
1.5.2變化檢測和性能優化17
1.5.3量變和質變18
1.6基綫管理19
1.6.1基準點和基綫19
1.6.2溝通基綫19
1.6.3基綫管理和動態基綫20
1.7Oracle性能優化的神話和誤區23
1.7.1藝術和科學23
1.7.2Oracle業務係統性能優化是高手的專利23
1.7.3測試係統性能很好,生産係統為什麼不行24
1.7.4針對特定性能問題的標準解決方案24
1.7.5隻要資源充足,數據庫性能就不會差24
1.7.6隻要數據庫性能好,業務係統性能必然良好25
1.7.7降低等待時間就可以提高業務係統性能25
第2章Oracle性能優化方法論的發展27
2.1基於局部命中率分析的優化方法論28
2.2基於OWI的優化方法論29
2.2.1OWI優化方法論簡述29
2.2.2OWI方法論的可檢測體係30
2.2.3OWI方法中waitevent的發展31
2.3響應時間分析優化方法論32
2.3.1RTA方法論簡述32
2.3.2RTA方法論的不足和改善35
2.4基於工作單元的響應時間分析優化方法論35
2.4.1UOWTBA優化方法論的導入35
2.4.2輸入吞吐量指標的選擇36
2.4.3采用UOWTBA優化方法工作38
2.5基於資源瓶頸分析的優化方法論38
2.5.1基於資源瓶頸分析優化方法論簡述38
2.5.2主要的數據庫服務資源供給39
2.5.3有效運行資源瓶頸分析優化方法40
2.6流程、資源和組件優化方法論41
2.6.1吞吐量和響應時間關係麯綫41
2.6.2流程和流程響應分析41
2.6.3資源分析43
2.6.4組件45
第3章流程分析之數據庫登錄流程46
3.1數據庫登錄導緻業務係統性能惡化案例分享46
3.2數據庫登錄流程的相關指標與優化47
3.2.1數據庫登錄流程的輸入吞吐量和輸齣響應指標47
3.2.2輸入壓力與輸齣響應之間的關係58
3.2.3數據庫登錄流程響應問題的優化案例64
第4章流程分析之數據訪問處理流程67
4.1數據訪問處理流程優化案例分享68
4.2數據訪問處理流程的分解68
4.3數據訪問處理流程的輸入和輸齣69
4.3.1輸入單元和輸齣單元的確定69
4.3.2輸入和輸齣指標的測量74
4.3.3輸入和輸齣指標的關係麯綫79
4.4數據訪問流程優化步驟80
4.5客戶端運行和響應階段80
4.5.1子流程過程性分解80
4.5.2子流程的輸入和輸齣指標81
4.5.3相關資源和組件84
4.5.4業務請求和響應階段優化案例84
4.6SQL語句分析階段(parse階段)85
4.6.1parse階段子流程分解85
4.6.2hard parse/soft parse/soft soft parse/no parse的區彆87
4.6.3SQL語句parse的高版本93
4.6.4復雜語句和簡單語句的parse差異96
4.6.5parse階段的輸入/輸齣指標99
4.6.6parse階段的優化道路113
4.6.7相關資源和組件121
4.6.8parse階段優化案例分析122
4.7SQL語句執行階段(execute階段)123
4.7.1SQL執行階段子流程分解123
4.7.2SQL執行子流程輸入/輸齣指標144
4.7.3SQL執行子流程的輸入/輸齣指標衡量147
4.7.4SQL執行階段輸入/輸齣關係圖155
4.7.5SQL執行階段的優化道路158
4.7.6SQL執行階段相關資源和組件162
4.7.7SQL執行階段優化案例164
4.8fetch次數對邏輯讀的影響165
4.9提交(Commit)階段的流程分解和分析167
4.9.1提交階段的主要執行過程167
4.9.2高並發性提交的響應問題169
4.9.3提交階段的優化道路174
第5章資源175
5.1簡單的資源供給類176
5.1.1資源使用的突變麯綫176
5.1.2資源的使用率和隊列長度176
5.1.3導緻資源供給性能問題的主要場景177
5.2並發性資源178
5.2.1並發性資源效率的衡量178
5.2.2主要的並發性資源和響應突變麯綫178
第6章資源供給:CPU179
6.1簡單案例分享179
6.2CPU的特殊性179
6.3CPU的工作和運行性能的衡量180
6.3.1CPU的主要工作180
6.3.2CPU運行性能的衡量:利用率和運行隊列長度180
6.3.3CPU的運行性能麯綫180
6.4CPU資源的主要衡量指標186
6.4.1CPU的主要性能衡量指標186
6.4.2CPU的主要性能衡量指標的測量187
6.4.3CPU相關的主要Oracle指標189
6.5幾個CPU資源常見問題的討論191
6.5.1CPU資源的100%利用率191
6.5.2CPU運行隊列的長度標準191
6.5.3CPUsys部分的資源消耗問題192
6.6CPU資源優化的目標和道路193
6.6.1CPU資源問題的場景和優化道路193
6.6.2降低CPU的輸入壓力195
6.6.3分布局部的CPU輸入壓力204
6.6.4提高CPU處理效率204
6.6.5閤理調度平緩化CPU使用206
6.7CPU資源優化案例206
第7章資源供給:內存和虛擬內存208
7.1簡單案例分享208
7.2物理內存和虛擬內存208
7.3簡單的虛擬內存管理209
7.3.1工作存儲分頁和永久存儲分頁209
7.3.2計算分頁和非計算分頁210
7.3.3頁麵大小和大頁管理215
7.3.4進程內存管理218
7.4虛擬內存運行性能的衡量221
7.4.1虛擬內存運行性能221
7.4.2虛擬內存的運行性能麯綫222
7.5虛擬內存資源的主要衡量指標225
7.5.1虛擬內存的主要性能衡量指標225
7.5.2虛擬內存主要性能衡量指標的測量226
7.5.3虛擬內存相關的主要Oracle指標229
7.6幾個虛擬內存資源常見問題的討論231
7.6.1有128GB的內存,為什麼自由空間還是很少231
7.6.2Oracle業務係統環境下的文件係統緩衝231
7.6.3如何從AWR報告中發現可能存在的虛擬問題232
7.6.4如何檢測和發現內存泄漏233
7.7虛擬內存資源優化的目標和道路234
7.7.1虛擬內存資源問題的場景和優化道路234
7.7.2閤理配置內存分配參數,避免發生swapin和swapout234
7.7.3閤理分配內存,讓內存的使用處於安全可控的範圍236
7.7.4充分利用內存,提高業務處理程序運行效率237
7.7.5閤理調度業務程序,使內存使用平緩化238
7.8虛擬內存資源優化案例239
第8章資源供給:I/O子係統243
8.1簡單案例分享243
8.2I/O子係統和構成243
8.3捲管理器和文件係統245
8.3.1捲管理器245
8.3.2文件係統和邏輯捲246
8.4HBA、SAN交換機及其他存儲係統鏈路通道249
8.4.1HBA和SAN249
8.4.2NIC和網絡交換機250
8.4.3IB和IB交換機250
8.5磁盤和磁盤陣列251
8.5.1磁盤251
8.5.2磁盤的硬件基礎性能衡量252
8.5.3磁盤的iops和數據傳輸率253
8.5.4磁盤平均隊列長度254
8.5.5磁盤陣列254
8.6Raid和LUN255
8.7磁盤多路徑訪問和基於存儲的容災復製影響258
8.7.1磁盤多路徑訪問258
8.7.2基於存儲(捲)的容災復製係統的影響259
8.8固態硬盤和PCIe260
8.8.1固態硬盤和傳統機械硬盤260
8.8.2SSD的簡單結構261
8.8.3固態硬盤不是機械設備261
8.8.4固態硬盤不支持原址更新263
8.8.5Oracle和固態硬盤263
8.9隨機訪問和順序訪問266
8.10基於Oracle數據庫的存儲係統設計269
8.10.1Oracle online redo logfile和磁盤陣列269
8.10.2臨時錶空間的存儲設計269
8.10.3OLTP業務係統或混閤型業務係統269
8.10.4數據倉庫或DSS決策係統270
8.11I/O子係統的運行性能衡量270
8.11.1I/O子係統運行性能的衡量指標270
8.11.2I/O子係統的運行性能麯綫271
8.11.3I/O資源主要性能衡量指標的測量272
8.11.4I/O子係統相關的主要Oracle指標275
8.12幾個I/O子係統資源常見問題的討論275
8.12.1I/O資源極度緊張但I/Owait錶現不高275
8.12.2發現大量的磁盤Cache但似乎Oracle不理會276
8.12.3磁盤利用率為100%,但處理能力還在不斷上漲277
8.12.4如何發現因存儲係統導緻的性能故障277
8.13I/O子係統資源優化的目標和道路278
8.13.1I/O資源問題的場景和優化道路278
8.13.2明確存儲故障,修正配置或修復存儲278
8.13.3降低存儲係統的全局I/O壓力280
8.13.4分布存儲係統壓力,使每個I/O設備處於閤理範疇290
8.13.5閤理調度業務程序,使I/O資源使用平緩化291
8.14I/O子係統資源優化案例291
……
第9章資源供給:網絡子係統
第10章資源供給:隊列鎖
第11章資源供給:row cache lock和library cache lock
第12章資源供給:buffer lock
第13章資源供給:latch
第14章資源供給:mutex
· · · · · · (
收起)