《Oracle性能診斷藝術(第2版)》是2020年4月人民郵電出版社出版的圖書,作者是[瑞士]安托尼尼(Christian Antognini)。
基本介紹
- 中文名:Oracle性能診斷藝術(第2版)
- 作者:[瑞士]安托尼尼(Christian Antognini)
- ISBN:9787115421173
- 頁數:610頁
- 定價:119元
- 出版社:人民郵電出版社
- 出版時間:2020年4月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書是兼具技術性與指導性的參考手冊。書中首先介紹了全書所需的基礎知識;接著描述如何藉助相關工具識別和分析性能問題,如何利用動態性能視圖;接著重點關注負責將SQL語句生成執行計畫的組件——查詢最佳化器;展示了Oracle資料庫為高效執行SQL語句提供的特性。
圖書目錄
第 一部分 基 礎
第 1 章 性能問題 ............................................. 2
1.1 需要為性能做規劃嗎................................ 2
1.1.1 需求分析 ....................................... 2
1.1.2 分析與設計 ................................... 4
1.1.3 編碼和單元測試............................ 4
1.1.4 集成和驗收測試............................ 6
1.2 為性能而設計 ........................................... 6
1.2.1 缺乏資料庫邏輯設計 .................... 6
1.2.2 實現通用表 ................................... 7
1.2.3 未使用約束加強數據完整性......... 7
1.2.4 缺乏資料庫物理設計 .................... 7
1.2.5 未正確選擇數據類型 .................... 8
1.2.6 未正確使用綁定變數 .................... 8
1.2.7 未利用資料庫**特性 ................ 8
1.2.8 未使用 PL/SQL 進行以數據為
中心的處理 ................................... 9
1.2.9 執行不必要的提交........................ 9
1.2.10 持續打開和關閉資料庫連線....... 9
1.3 你真的面臨性能問題嗎............................ 9
1.3.1 系統監控 ......................................10
1.3.2 回響時間監控 ..............................10
1.3.3 強迫性調優障礙...........................10
1.4 如何處理性能問題 ..................................11
1.4.1 業務視角和系統視角 ...................11
1.4.2 問題的編錄 ..................................12
1.4.3 解決問題 ......................................12
1.5 小結 .........................................................15
第 2 章 關鍵概念 ............................................16
2.1 選擇率和基數 ..........................................16
2.2 什麼是游標..............................................17
2.3 游標的生命周期 ......................................18
2.4 解析的工作原理 ......................................20
2.4.1 可共享游標 ..................................22
2.4.2 綁定變數......................................25
2.5 讀寫數據塊..............................................35
2.6 檢測 .........................................................36
2.6.1 應用程式代碼 ..............................37
2.6.2 資料庫調用 ..................................39
2.7 小結 .........................................................42
第 二部分 識 別
第 3 章 分析可重現的問題...........................45
3.1 跟蹤資料庫調用 ......................................45
3.1.1 SQL 跟蹤 .....................................45
3.1.2 跟蹤檔案的結構 ..........................57
3.1.3 使用 TRCSESS ............................59
3.1.4 探查器..........................................60
3.1.5 使用 TKPROF..............................60
3.1.6 使用 TVD$XTAT ........................70
3.2 探查 PL/SQL 代碼...................................79
3.2.1 使用 DMBS_HPROF ...................79
3.2.2 使用 DBMS_PROFILER .............85
3.2.3 觸發探查器 ..................................89
3.3 小結 .........................................................90
第 4 章 實時分析不可重現的問題 ..............91
4.1 分析路線圖..............................................91
4.2 動態性能視圖 ..........................................93
4.2.1 作業系統統計信息.......................93
4.2.2 時間模型統計信息.......................94
4.2.3 等待級別和等待事件...................96
4.2.4 系統和會話統計信息.................100
4.2.5 度量值........................................101
4.2.6 當前會話狀態 ............................102
4.2.7 活動會話歷史 ............................103
4.2.8 SQL 語句統計信息 ....................111
4.2.9 實時監控....................................112
4.3 使用 Diagnostics Pack 和 Tuning Pack
進行分析................................................115
4.3.1 資料庫伺服器負載.....................115
4.3.2 系統級別分析 ............................116
4.3.3 會話級別分析 ............................120
4.3.4 SQL 語句信息............................122
4.4 不使用 Diagnostics Pack 進行分析 .......125
4.4.1 資料庫伺服器負載.....................125
4.4.2 系統級別分析 ............................126
4.4.3 會話級別分析 ............................129
4.4.4 SQL 語句信息............................130
4.5 小結 .......................................................131
第 5 章 不可重現問題的事後分析 ............132
5.1 知識庫 ...................................................132
5.2 自動工作負載存儲庫 ............................133
5.2.1 執行配置....................................133
5.2.2 捕獲快照....................................134
5.2.3 管理基線....................................135
5.3 Statspack................................................136
5.3.1 執行安裝....................................137
5.3.2 配置存儲庫 ................................137
5.3.3 捕獲和清除快照 ........................138
5.3.4 管理基線....................................139
5.4 使用 Diagnostics Pack 進行分析 ...........140
5.5 不使用 Diagnostics Pack 進行分析 .......140
5.6 小結 .......................................................145
第三部分 查詢最佳化器
第 6 章 查詢最佳化器簡介 .............................148
6.1 基礎知識 ...............................................148
6.2 體系結構 ............................................... 150
6.3 查詢轉換 ............................................... 152
6.3.1 計數轉換.................................... 152
6.3.2 公共子表達式消除 .................... 153
6.3.3 “或”擴張................................ 153
6.3.4 視圖合併.................................... 154
6.3.5 選擇列表裁剪 ............................ 155
6.3.6 謂詞下推.................................... 156
6.3.7 謂詞遷移.................................... 158
6.3.8 非重複放置................................ 158
6.3.9 非重複消除................................ 159
6.3.10 Group-by 放置 ......................... 159
6.3.11 Order-By 消除.......................... 160
6.3.12 子查詢展開.............................. 160
6.3.13 子查詢合併.............................. 161
6.3.14 使用視窗函式移除子查詢 ....... 162
6.3.15 聯接消除.................................. 162
6.3.16 聯接因式分解 .......................... 163
6.3.17 外聯接轉內聯接 ...................... 163
6.3.18 完全外聯接.............................. 164
6.3.19 表擴張 ..................................... 164
6.3.20 集合操作聯接轉變 .................. 165
6.3.21 星型轉換.................................. 166
6.3.22 物化視圖查詢重寫 .................. 166
6.4 小結....................................................... 166
第 7 章 系統統計信息 ................................. 167
7.1 dbms_stats 包 ........................................ 167
7.2 有哪些系統統計信息可用..................... 168
7.3 收集系統統計信息 ................................ 170
7.3.1 無工作負載統計信息................. 170
7.3.2 工作負載統計信息 .................... 171
7.3.3 在無工作負載統計信息和
工作負載統計信息之間進
行選擇 ....................................... 174
7.4 還原系統統計信息 ................................ 174
7.5 使用備份表 ........................................... 175
7.6 管理操作的日誌記錄 ............................ 176
7.7 對查詢最佳化器的影響 ............................ 177
7.8 小結....................................................... 182
第 8 章 對象統計信息 .................................183
8.1 dbms_stats 包......................................183
8.2 有哪些對象統計信息可用 .....................185
8.2.1 表統計信息.................................186
8.2.2 列統計信息.................................187
8.2.3 直方圖 ........................................189
8.2.4 擴展統計信息.............................200
8.2.5 索引統計信息.............................205
8.2.6 分區對象統計信息 .....................206
8.3 收集對象統計信息 ................................207
8.3.1 目標對象 ....................................208
8.3.2 收集選項 ....................................212
8.3.3 備份表 ........................................217
8.4 配置 dbms_stats 包 ..............................218
8.4.1 傳統方式 ....................................218
8.4.2 現代方式 ....................................219
8.5 處理全局臨時表 ....................................221
8.6 處理掛起的對象統計信息 .....................222
8.7 處理分區對象 ........................................223
8.7.1 挑戰 ............................................223
8.7.2 增量統計信息.............................226
8.7.3 複製統計信息.............................228
8.8 調度對象統計信息的收集 .....................229
8.8.1 10g 方式 .....................................229
8.8.2 11g 和 12c 方式 ..........................231
8.9 還原對象統計信息 ................................232
8.10 鎖定對象統計信息...............................234
8.11 比較對象統計信息...............................236
8.12 刪除對象統計信息...............................238
8.13 導出、導入、獲取和設定對象統計
信息......................................................239
8.14 管理操作的日誌記錄...........................239
8.15 保持對象統計信息為**新的策略........241
8.16 小結 .....................................................242
第 9 章 配置查詢最佳化器 .............................243
9.1 配置還是不配置 ....................................243
9.2 配置路線圖 ............................................244
9.3 設定正確的參數 ....................................245
9.3.1 查詢最佳化器參數.........................246
9.3.2 PGA 管理 ...................................260
9.4 小結 .......................................................266
第 10 章 執行計畫 .......................................267
10.1 獲取執行計畫 ......................................267
10.1.1 EXPLAIN PLAN 語句 ...............267
10.1.2 動態性能視圖 ........................270
10.1.3 自動工作負載存儲庫和
Statspack................................272
10.1.4 跟蹤工具 ................................274
10.2 dbms_xplan 包.....................................277
10.2.1 輸出........................................277
10.2.2 display 函式 .........................281
10.2.3 display_cursor 函式............286
10.2.4 display_awr 函式 .................288
10.3 解釋執行計畫 ......................................289
10.3.1 父 子關係 ..............................290
10.3.2 操作的類型 ............................292
10.3.3 獨立操作 ................................292
10.3.4 疊代操作 ................................295
10.3.5 無關聯組合操作.....................295
10.3.6 關聯組合操作 ........................297
10.3.7 分而治之 ................................305
10.3.8 特殊情況 ................................307
10.3.9 自適應執行計畫.....................310
10.4 識別低效的執行計畫...........................314
10.4.1 錯誤的估算 ............................314
10.4.2 未識別限制條件.....................316
10.5 小結 .....................................................317
第四部分 優 化
第 11 章 SQL 最佳化技巧 ..............................320
11.1 修改訪問結構 ......................................321
11.1.1 工作原理 ................................321
11.1.2 何時使用 ................................322
11.1.3 陷阱和謬誤 ............................322
11.2 修改 SQL 語句.....................................322
11.2.1 工作原理 ................................322
11.2.2 何時使用 ................................323
11.2.3 陷阱和謬誤 ............................324
11.3 hint.......................................................324
11.3.1 工作原理 ................................324
11.3.2 何時使用 ................................330
11.3.3 陷阱和謬誤 ............................330
11.4 修改執行環境 ......................................332
11.4.1 工作原理 ................................332
11.4.2 何時使用 ................................334
11.4.3 陷阱和謬誤 ............................334
11.5 存儲概要..............................................334
11.5.1 工作原理 ................................335
11.5.2 何時使用 ................................343
11.5.3 陷阱和謬誤 ............................343
11.6 SQL 配置檔案 .....................................344
11.6.1 工作原理 ................................345
11.6.2 何時使用 ................................357
11.6.3 陷阱和謬誤 ............................357
11.7 SQL 計畫管理 .....................................358
11.7.1 工作原理 ................................359
11.7.2 何時使用 ................................372
11.7.3 陷阱和謬誤 ............................372
11.8 小結 .....................................................373
第 12 章 解析................................................374
12.1 識別解析問題 ......................................374
12.1.1 快速解析 ................................375
12.1.2 長解析....................................380
12.2 解決解析問題 ......................................381
12.2.1 快速解析 ................................381
12.2.2 長解析....................................387
12.3 避開解析問題 ......................................387
12.3.1 游標共享 ................................388
12.3.2 伺服器端語句快取.................390
12.4 使用套用編程接口 ..............................392
12.4.1 PL/SQL ..................................392
12.4.2 OCI.........................................395
12.4.3 JDBC......................................396
12.4.4 ODP.NET ...............................398
12.4.5 PHP ........................................399
12.5 小結 .....................................................400
第 13 章 最佳化數據訪問............................... 401
13.1 識別次優訪問路徑 .............................. 401
13.1.1 識別 ....................................... 401
13.1.2 誤區 ....................................... 403
13.1.3 原因 ....................................... 405
13.1.4 解決方案................................ 406
13.2 弱選擇性的 SQL 語句......................... 409
13.2.1 全表掃描................................ 409
13.2.2 全分區掃描 ............................ 411
13.2.3 範圍分區................................ 411
13.2.4 散列和列表分區 .................... 422
13.2.5 複合分區................................ 422
13.2.6 設計要素................................ 424
13.2.7 全索引掃描 ............................ 426
13.3 強選擇性的 SQL 語句......................... 429
13.3.1 Rowid 訪問 ............................ 429
13.3.2 索引訪問................................ 430
13.3.3 單表散列群集訪問 ................ 468
13.4 小結 ..................................................... 470
第 14 章 最佳化聯接 ....................................... 471
14.1 定義 ..................................................... 471
14.1.1 聯接樹.................................... 471
14.1.2 聯接的類型 ............................ 475
14.1.3 限制條件與聯接條件............. 478
14.2 嵌套循環聯接...................................... 479
14.2.1 概念 ....................................... 479
14.2.2 兩表聯接................................ 480
14.2.3 四表聯接................................ 481
14.2.4 緩衝區快取預取 .................... 482
14.3 合併聯接 ............................................. 484
14.3.1 概念 ....................................... 484
14.3.2 兩表聯接................................ 485
14.3.3 四表聯接................................ 488
14.3.4 工作區.................................... 489
14.4 散列聯接 ............................................. 494
14.4.1 概念 ....................................... 494
14.4.2 兩表聯接................................ 495
14.4.3 四表聯接................................ 496
14.4.4 工作區.................................... 498
14.4.5 索引聯接 ................................498
14.5 外聯接..................................................499
14.6 選擇聯接方法 ......................................499
14.6.1 First-Rows 最佳化......................500
14.6.2 All-Rows 最佳化 ........................500
14.6.3 支持的聯接方法.....................500
14.6.4 並行聯接 ................................500
14.7 分區智慧型聯接 ......................................501
14.7.1 完全智慧型化分區連線 .............501
14.7.2 部分智慧型化分區聯接 .............504
14.8 星型轉換..............................................505
14.9 小結 .....................................................511
第 15 章 數據訪問和聯接最佳化之外..........512
15.1 物化視圖..............................................512
15.1.1 工作原理 ................................512
15.1.2 何時使用 ................................530
15.1.3 陷阱和謬誤 ............................531
15.2 結果快取..............................................531
15.2.1 工作原理 ................................532
15.2.2 何時使用 ................................538
15.2.3 陷阱和謬誤 ............................538
15.3 並行處理..............................................539
15.3.1 工作原理 ................................540
15.3.2 何時使用 ................................567
15.3.3 陷阱和謬誤 ............................567
15.4 直接路徑插入 ......................................571
15.4.1 工作原理 ................................572
15.4.2 何時使用 ................................574
15.4.3 陷阱和謬誤 ............................574
15.5 行預取 .................................................575
15.5.1 工作原理 ................................575
15.5.2 何時使用 ................................579
15.5.3 陷阱和謬誤 ............................580
15.6 數組接口..............................................580
15.6.1 工作原理 ................................580
15.6.2 何時使用 ................................583
15.6.3 陷阱和謬誤 ............................583
15.7 小結 .....................................................583
第 16 章 最佳化物理設計...............................584
16.1 **優列順序..........................................584
16.2 **優數據類型 ......................................586
16.2.1 數據類型選擇中的陷阱 .........586
16.2.2 數據類型選擇**佳實踐 .........589
16.3 行遷移和行連結 ..................................591
16.3.1 遷移與連結 ............................591
16.3.2 問題描述 ................................593
16.3.3 問題識別 ................................593
16.3.4 解決方案 ................................594
16.4 塊爭用 .................................................594
16.4.1 問題描述 ................................594
16.4.2 問題識別 ................................595
16.4.3 解決方案 ................................599
16.5 數據壓縮..............................................602
16.5.1 概念........................................602
16.5.2 要求........................................603
16.5.3 方法........................................603
參考文獻...........................................................606