發表於2024-11-14
本書是兼具技術性與指導性的參考手冊。書中首先介紹瞭全書所需的基礎知識;接著描述如何藉助相關工具識彆和分析性能問題,如何利用動態性能視圖;接著重點關注負責將SQL語句生成執行計劃的組件——查詢優化器;後則展示瞭Oracle數據庫為高效執行SQL語句提供的特性。
Christian Antognini
資深數據庫專傢,從1995年就開始緻力於探究Oracle數據庫引擎的工作機製。長期關注邏輯與物理數據庫的設計、數據庫與Java應用程序的集成、查詢優化器以及與性能管理和優化相關的各個方麵。目前任瑞士蘇黎世Trivadis公司首席顧問和性能教練,是OakTable網站核心成員。
“互聯網上充斥著大量的Oracle性能相關信息,不但高度碎片化,而且有很多是錯誤的。本書則異常清晰地給齣瞭Oracle性能相關的理論和實踐,明確指導讀者找到需要達成的目的以及如何達成目的。”
——Jonathan Lewis,世界級Oracle技術專傢,英國Oracle用戶組織總監,《Oracle核心技術》作者
“這是一本技術與理念並重的參考書,不僅包含瞭大量完備的可重用的實例,而且包含瞭一些富有說服力的新觀點。我可以用他的觀點去說服更多的人做正確的事。”
——Cary Millsap,Method R公司首席執行官,Oracle公司係統性能集團前副總裁,數據庫性能技術大師
目 錄
第一部分 基 礎
第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 使用應用編程接口 3
圖靈教育 Oracle性能診斷藝術(第2版)Oracle 數據庫 SQL 性能優化 下載 mobi epub pdf txt 電子書 格式
圖靈教育 Oracle性能診斷藝術(第2版)Oracle 數據庫 SQL 性能優化 下載 mobi pdf epub txt 電子書 格式 2024
圖靈教育 Oracle性能診斷藝術(第2版)Oracle 數據庫 SQL 性能優化 下載 mobi epub pdf 電子書圖靈教育 Oracle性能診斷藝術(第2版)Oracle 數據庫 SQL 性能優化 mobi epub pdf txt 電子書 格式下載 2024