|
-- 會員 / 註冊 --
|
|
|
|
Oracle數據庫性能優化方法論和最佳實踐 ( 簡體 字) |
作者:柳遵梁 潘敏君 應以峰 | 類別:1. -> 資料庫 -> Oracle |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 43488 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:2/1/2016 |
頁數:553 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111526940 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書內容為FlowofWorkUnitTimeBasedAnalysis性能優化方法論的第一部分,主要介紹基于流程響應和流程分解的響應時間分析方法論。基本按照以下方式來展開論述:第一部分:從性能優化常見的困惑和場景出發引出一些性能優化的基本概念,并重點闡述了Oracle數據庫性能優化的方法論發展。第二部分:重點闡述FlowofWorkUnitTimeBasedAnalysis優化方法論,闡述流程、資源和組件之間的相互作用,構建了流程響應的輸入輸出的性能優化指標體系。第三部分:資源供給,重點闡述流程、資源和組件中的資源部分,全面分析了CPU、Memory、IOSubsystem,NetworkSubSystem、Lock,BufferLock、Latch、Mutex等主要的Oracle數據庫資源,并針對每種資源建立了獨立的衡量評價體系。 |
目錄:前 言 第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.5 tpcc測試的吞吐量和響應時間曲線 10 1.3.6 磁盤I/O系統吞吐量和響應時間曲線 10 1.4 Oracle性能優化工作的分類 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.7 Oracle性能優化的神話和誤區 23 1.7.1 藝術和科學 23 1.7.2 Oracle業務系統性能優化是高手的專利 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.1 OWI優化方法論簡述 29 2.2.2 OWI方法論的可檢測體系 30 2.2.3 OWI方法中wait event的發展 31 2.3 響應時間分析優化方法論 32 2.3.1 RTA方法論簡述 32 2.3.2 RTA方法論的不足和改善 35 2.4 基于工作單元的響應時間分析優化方法論 35 2.4.1 UOWTBA優化方法論的導入 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.6 SQL語句分析階段(parse階段) 85 4.6.1 parse階段子流程分解 85 4.6.2 hard parse/soft parse/soft soft parse/no parse的區別 87 4.6.3 SQL語句parse的高版本 93 4.6.4 復雜語句和簡單語句的parse差異 96 4.6.5 parse階段的輸入/輸出指標 99 4.6.6 parse階段的優化道路 113 4.6.7 相關資源和組件 121 4.6.8 parse階段優化案例分析 122 4.7 SQL語句執行階段(execute階段) 123 4.7.1 SQL執行階段子流程分解 123 4.7.2 SQL執行子流程輸入/輸出指標 144 4.7.3 SQL執行子流程的輸入/輸出指標衡量 147 4.7.4 SQL執行階段輸入/輸出關系圖 155 4.7.5 SQL執行階段的優化道路 158 4.7.6 SQL執行階段相關資源和組件 162 4.7.7 SQL執行階段優化案例 164 4.8 fetch次數對邏輯讀的影響 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章 資源供給:CPU 179 6.1 簡單案例分享 179 6.2 CPU的特殊性 179 6.3 CPU的工作和運行性能的衡量 180 6.3.1 CPU的主要工作 180 6.3.2 CPU運行性能的衡量:利用率和運行隊列長度 180 6.3.3 CPU的運行性能曲線 180 6.4 CPU資源的主要衡量指標 186 6.4.1 CPU的主要性能衡量指標 186 6.4.2 CPU的主要性能衡量指標的測量 187 6.4.3 CPU相關的主要Oracle指標 189 6.5 幾個CPU資源常見問題的討論 191 6.5.1 CPU資源的100%利用率 191 6.5.2 CPU運行隊列的長度標準 191 6.5.3 CPU sys部分的資源消耗問題 192 6.6 CPU資源優化的目標和道路 193 6.6.1 CPU資源問題的場景和優化道路 193 6.6.2 降低CPU的輸入壓力 195 6.6.3 分布局部的CPU輸入壓力 204 6.6.4 提高CPU處理效率 204 6.6.5 合理調度平緩化CPU使用 206 6.7 CPU資源優化案例 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.2 Oracle業務系統環境下的文件系統緩沖 231 7.6.3 如何從AWR報告中發現可能存在的虛擬問題 232 7.6.4 如何檢測和發現內存泄漏 233 7.7 虛擬內存資源優化的目標和道路 234 7.7.1 虛擬內存資源問題的場景和優化道路 234 7.7.2 合理配置內存分配參數,避免發生swapin和swapout 234 7.7.3 合理分配內存,讓內存的使用處于安全可控的范圍 236 7.7.4 充分利用內存,提高業務處理程序運行效率 237 7.7.5 合理調度業務程序,使內存使用平緩化 238 7.8 虛擬內存資源優化案例 239 第8章 資源供給:I/O子系統 243 8.1 簡單案例分享 243 8.2 I/O子系統和構成 243 8.3 卷管理器和文件系統 245 8.3.1 卷管理器 245 8.3.2 文件系統和邏輯卷 246 8.4 HBA、SAN交換機及其他存儲系統鏈路通道 249 8.4.1 HBA和SAN 249 8.4.2 NIC和網絡交換機 250 8.4.3 IB和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.6 Raid和LUN 255 8.7 磁盤多路徑訪問和基于存儲的容災復制影響 258 8.7.1 磁盤多路徑訪問 258 8.7.2 基于存儲(卷)的容災復制系統的影響 259 8.8 固態硬盤和PCIe 260 8.8.1 固態硬盤和傳統機械硬盤 260 8.8.2 SSD的簡單結構 261 8.8.3 固態硬盤不是機械設備 261 8.8.4 固態硬盤不支持原址更新 263 8.8.5 Oracle和固態硬盤 263 8.9 隨機訪問和順序訪問 266 8.10 基于Oracle數據庫的存儲系統設計 269 8.10.1 Oracle online redo logf?ile和磁盤陣列 269 8.10.2 臨時表空間的存儲設計 269 8.10.3 OLTP業務系統或混合型業務系統 269 8.10.4 數據倉庫或DSS決策系統 270 8.11 I/O子系統的運行性能衡量 270 8.11.1 I/O子系統運行性能的衡量指標 270 8.11.2 I/O子系統的運行性能曲線 271 8.11.3 I/O資源主要性能衡量指標的測量 272 8.11.4 I/O子系統相關的主要Oracle指標 275 8.12 幾個I/O子系統資源常見問題的討論 275 8.12.1 I/O資源極度緊張但I/O wait表現不高 275 8.12.2 發現大量的磁盤Cache但似乎Oracle不理會 276 8.12.3 磁盤利用率為100%,但處理能力還在不斷上漲 277 8.12.4 如何發現因存儲系統導致的性能故障 277 8.13 I/O子系統資源優化的目標和道路 278 8.13.1 I/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.14 I/O子系統資源優化案例 291 第9章 資源供給:網絡子系統 294 9.1 簡單案例分享 294 9.2 網絡子系統和構成 294 9.2.1 網卡、網絡交換機(路由器)和網絡 294 9.2.2 網絡延遲和吞吐量 296 9.2.3 高速內聯網和業務網絡 297 9.2.4 在低速網絡下運行業務 298 9.3 網絡協議:TCP、UDP和NFS 298 9.3.1 TCP 298 9.3.2 UDP 299 9.3.3 NFS 299 9.4 網絡參數配置和運行性能 299 9.4.1 RTT、Bandwidth和BDP 300 9.4.2 主要的網絡參數 300 9.4.3 主要的NFS參數 304 9.5 網絡帶寬的擴展 305 9.5.1 網卡綁定類型 305 9.5.2 負載均衡模式網卡綁定配置 306 9.5.3 負載均衡模式網卡綁定測試 308 9.6 主要的網絡性能監視工具 309 9.7 網絡子系統的運行性能衡量 313 9.7.1 網絡子系統運行性能的衡量指標 313 9.7.2 網絡子系統的運行性能曲線 314 9.7.3 網絡資源主要性能衡量指標的測量 315 9.7.4 網絡子系統相關的主要Oracle指標 317 9.8 幾個網絡子系統資源常見問題的討論 317 9.8.1 系統中總是有SQL*Net message from client事件 317 9.8.2 如何發現過量的網絡交互引起的響應緩慢 318 9.8.3 C語言處理數據的效能遠遠低于數據庫存儲過程 319 9.9 網絡子系統資源優化的目標和道路 319 9.9.1 網絡資源問題的場景和優化道路 319 9.9.2 明確網絡故障,修正配置或修復存儲 320 9.9.3 降低網絡系統的全局輸入壓力 320 9.9.4 分布網絡系統壓力,使每個網絡設備處于合理范疇 322 9.9.5 設置最佳的網絡配置參數,使網絡設備運行效率最佳 322 9.10 網絡子系統資源優化案例 322 第10章 資源供給:隊列鎖 325 10.1 簡單案例分享 325 10.2 并發性控制和隊列鎖 326 10.2.1 鎖資源和鎖資源的訪問 326 10.2.2 鎖資源的感知 327 10.2.3 隊列鎖相關的資源參數 329 10.2.4 隊列鎖、事務鎖和DML表格鎖 330 10.2.5 鎖模式和意向鎖 330 10.2.6 主要的Oracle隊列鎖 332 10.3 事務鎖 333 10.3.1 行鎖和不加鎖的一致性讀 334 10.3.2 TX鎖沖突 338 10.3.3 死鎖 345 10.3.4 基于TX lock的統計、事件和視圖 350 10.3.5 TX lock資源沖突的優化道路 354 10.4 TM鎖 355 10.4.1 TM lock作用模式和作用場合 356 10.4.2 dml_locks參數和TM lock 358 10.4.3 ora-00054和TM lock 358 10.4.4 TM lock的統計、等待事件和視圖 359 10.4.5 TM lock資源的優化 361 10.5 sequence相關的鎖 361 10.5.1 SQ lock 361 10.5.2 sequence導致的row cache lock 367 10.5.3 DFS lock handle和SV lock 369 10.5.4 sequence相關的統計、等待事件和視圖 372 10.5.5 sequence相關鎖資源的優化 374 10.6 HW lock和ST lock 375 10.6.1 高水位的概念和高水位的移動 375 10.6.2 HW lock沖突 378 10.6.3 HWM和全表掃描 378 10.6.4 HW lock相關統計、等待事件和視圖 379 10.6.5 HW lock資源的優化之道 381 10.7 CF lock 382 10.7.1 CF lock的作用場景 382 10.7.2 rman備份或控制文件自動備份和CF lock 383 10.7.3 dump current redo log持有CF lock 384 10.7.4 CF lock相關統計、等待事件和視圖 384 10.7.5 CF lock資源的優化之道 385 10.8 US lock 386 10.8.1 隱含參數_undo_autotune和參數undo_retention 386 10.8.2 事件10511和10512 388 10.9 RO lock 388 10.9.1 RO lock資源性能的相關因素 389 10.9.2 RO lock涉及的主要事件 390 10.10 隊列鎖運行性能的衡量 391 10.10.1 隊列鎖運行性能的衡量 指標 391 10.10.2 隊列鎖資源的運行性能 曲線 391 10.10.3 隊列鎖運行性能衡量 指標的測量 391 10.11 隊列鎖資源優化的目標和道路 394 10.11.1 業務壓力導致鎖資源 沖突 394 10.11.2 業務不當導致過多持有 隊列鎖 395 10.11.3 持有隊列鎖的時間過長 396 10.11.4 缺乏事物失敗思維導致 事務規模過大 396 10.11.5 調度和運維不當導致隊列 鎖長期持有 396 10.11.6 擁有隊列鎖資源的進程 處于僵死或不活動狀態 396 10.12 隊列鎖資源優化案例 397 第11章 資源供給:row cache lock和library cache lock 399 11.1 簡單案例分享 399 11.2 row cache lock和ddl lock 399 11.2.1 row cache的組成 399 11.2.2 row cache lock涉及的視圖 408 11.2.3 row cache lock沖突的排查 408 11.3 library cache lock 409 11.3.1 library cache lock和鎖模式 410 11.3.2 library cache lock的場景觀察 412 11.3.3 library cache lock涉及的視圖 420 11.3.4 library cache lock故障的排查和優化 420 11.4 row cache lock和library cache lock運行性能的衡量 420 11.4.1 row cache lock資源運行性能的衡量指標 420 11.4.2 library cache lock資源運行性能的衡量指標 421 11.4.3 row cache lock鎖運行性能衡量指標的測量 422 11.4.4 library cache lock運行性能衡量指標的測量 423 11.5 row cache lock鎖資源優化的目標和道路 426 11.5.1 數據字典的變化 426 11.5.2 降低row cache object的重載 428 11.6 library cache lock鎖資源的目標和道路 428 11.7 row cache lock和library cache lock鎖資源優化案例 429 第12章 資源供給:buffer lock 431 12.1 簡單案例分享 431 12.2 buffer header和buffer lock(pin) 431 12.2.1 buffer header和buffer lock 432 12.2.2 buffer lock的鎖兼容 433 12.3 buffer lock沖突的簡單驗證 434 12.3.1 select和select操作 435 12.3.2 select和update操作 436 12.3.3 update和update之間 437 12.4 buffer lock運行性能的衡量和測量 439 12.4.1 buffer lock沖突的buffer block類型 439 12.4.2 buffer lock資源運行性能的衡量指標 441 12.4.3 buffer lock鎖資源運行性能衡量指標的測量 441 12.5 buffer lock鎖資源優化的目標和道路 442 12.5.1 降低buffer lock鎖資源需求 443 12.5.2 分散buffer lock局部熱點,降低buffer lock并發性沖突 443 12.5.3 降低buffer lock的持有時間 448 12.5.4 read by other session的buffer lock沖突 448 12.6 buffer lock鎖資源優化案例 448 第13章 資源供給:latch 450 13.1 簡單案例分享 450 13.2 并發性控制資源:latch或spinlock 450 13.2.1 latch獲得和釋放的基本過程 450 13.2.2 latch結構 453 13.2.3 CAS、TAS及latch的spin 453 13.2.4 Willing-To-Wait和no-Wait latch 455 13.3 latch的spin和spin_count控制 456 13.3.1 latch的spin和spin_count控制 456 13.3.2 不同latch的spin count細粒度控制 457 13.3.3 x$ksllclass視圖和其他latch參數 459 13.3.4 spin_count參數的合理設置 460 13.4 latch資源沖突和性能優化 461 13.4.1 latch沖突的簡單認知 462 13.4.2 常見的latch沖突 465 13.4.3 latch性能相關的統計數據 465 13.4.4 幾張主要的latch視圖 466 13.5 主要的latch資源場景和沖突 468 13.5.1 Cache buffers chains latch 468 13.5.2 cache buffer lru chains latch 473 13.5.3 library cache(lock/pin)latch 476 13.5.4 shared pool latch 481 13.5.5 row cache objects latch 490 13.5.6 undo global data latch 501 13.5.7 object queue header operation latch和checkpoint queue latch 505 13.6 latch資源運行性能的衡量 506 13.7 latch資源優化的目標和道路 507 13.7.1 降低latch資源需求 508 13.7.2 分布熱點latch資源 513 13.7.3 降低latch資源的持有時間 520 13.7.4 spin_count和latch資源優化 524 13.8 latch資源優化案例 525 第14章 資源供給:mutex 527 14.1 簡單案例分享 527 14.2 并發性控制資源:mutex 527 14.2.1 Oracle 11gR2中包含的mutex 528 14.2.2 mutex的工作方式 529 14.3 mutex對應的wait event說明和場景 532 14.3.1 mutex對應的wait event描述 532 14.3.2 cursor:pin S事件 533 14.3.3 cursor:mutex事件和library cache:mutex事件 535 14.3.4 hash table mutex、cursor:mutex S|X和SQL高版本 537 14.4 mutex資源沖突和性能優化 538 14.4.1 常見的mutex沖突 538 14.4.2 mutex性能相關的統計數據 539 14.4.3 主要的mutex視圖 539 14.5 主要的mutex資源場景和沖突 542 14.5.1 cursor pin mutex 542 14.5.2 cursor parent mutex 542 14.5.3 hash table mutex 542 14.5.4 cursor stat mutex 543 14.6 mutex資源的運行性能衡量和測量 543 14.6.1 mutex資源運行性能衡量的主要指標 543 14.6.2 mutex資源運行性能衡量指標的測量 544 14.7 mutex資源優化的目標和道路 545 14.7.1 降低mutex資源需求 545 14.7.2 分布熱點mutex資源 547 14.7.3 減少mutex資源的持有時間 550 14.8 mutex_spin_count、sleep_time、scheme和mutex資源優化 552 14.9 mutex資源優化案例 553 |
序: |
|