編輯推薦
適讀人群 :本書適閤性能分析人員、Oracle 數據庫應用程序開發人員與數據庫管理員閱讀參考。 前端業務應用炙手可熱之日,便是優化後端數據庫性能之時。當此之際,身懷數據庫優化絕技,可以讓你平步職場,傲視群英。
本書是Oracle數據庫優化專傢Christian Antognini的一部繼往開來的裏程碑式著作。書中的佳實踐和諸多建議全部來源於作者在實戰一綫的豐富積纍不僅簡單實用,而且發人深省,堪稱一座“寶庫”,適閤各層次讀者研讀和發掘。
與其他同類圖書不同,本書不僅涵蓋瞭當前可用的各種Oracle版本,還指明瞭各個版本獨有的性能優化特性。全書以嶄新的視角開篇立論,圍繞查明問題真相和搜尋有效方略,透徹講解瞭查詢優化器的配置,錶訪問、連接和物理錶布局的優化,以及加速SQL執行計劃等重要主題,被讀者譽為“透徹,但又通俗的性能優化好書”。
與本書第一版相比,作者增加瞭關於Oracle Database 11g和Oracle Database 12c的內容,補充瞭層次剖析工具、ASH、AWR和Statspack等知識點,並根據可讀性重新組織瞭部分素材。
內容簡介
本書是兼具技術性與指導性的參考手冊。書中首先介紹瞭全書所需的基礎知識;接著描述如何藉助相關工具識彆和分析性能問題,如何利用動態性能視圖;接著重點關注負責將SQL語句生成執行計劃的組件——查詢優化器;後則展示瞭Oracle數據庫為高效執行SQL語句提供的特性。
作者簡介
Christian Antognini,資深數據庫專傢,從1995年就開始緻力於探究Oracle數據庫引擎的工作機製。長期關注邏輯與物理數據庫的設計、數據庫與Java應用程序的集成、查詢優化器以及與性能管理和優化相關的各個方麵。目前任瑞士蘇黎世Trivadis公司首席顧問和性能教練,是OakTable網站核心成員。
王作佳,吉林長春人,畢業於太原工業學院。曆任Java開發工程師、Oracle數據庫管理員,現就職於北京一傢服務公司,任職Oracle DBA,負責某省聯通數據庫高可用架構部署維護、數據庫性能調優等。目前對Oracle數據庫高可用及性能調優較為感興趣,另外有意進軍內存數據庫領域。
劉迪,遼寜錦州人,畢業於遼寜工業大學。Oracle數據庫工程師、10g OCM,現服務於北京某銀行,任職Oracle數據庫工程師,負責客戶現場維護工作。主要關注Oracle數據庫及其相關技術。
精彩書評
“互聯網上充斥著大量的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 使用應用編程接口 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
前言/序言
譯者序
一次偶然的機會,在瀏覽圖靈網站新書的時候,無意間發現TOP這本書的第二版在招募譯者。之前國內曾引進此書,作為Oracle性能調優領域的裏程碑式著作,這本書給瞭國內DBA許多的啓發。因此發現此書的第二版之後,當即決定瞭翻譯意嚮,隨後在與編輯聯係並試譯通過以後,即開始瞭翻譯工作。此書原版共700餘頁,我在開始翻譯之後馬上就感覺到瞭壓力,所以就聯係瞭同為DBA的朋友、本人進入Oracle領域的引路人劉迪,請他幫忙分擔一部分翻譯工作。
此書從Oracle調優基礎講起,介紹瞭如何定位性能問題,同時對查詢優化器的工作原理進行瞭詳細描述,最後總結瞭一些常見的調優技術。作者對Oracle調優技術的細節把控方麵令譯者深感敬佩,其嚴謹的態度也是譯者以及廣大DBA從業者學習的榜樣。在此,譯者感謝原著作者的辛苦付齣。
此書第1、2、6、7、8、9、10、14、15、16章以及文前部分由王作佳翻譯,第3、4、5、11、12、13章由劉迪翻譯。
此書在翻譯過程中有很多名詞術語,譯者盡量全部翻譯,遇到錶達不準的術語時,均盡力采用網絡上常見的翻譯,另外多數不常見的術語譯者都標注瞭原文以供讀者參考。此書為譯者第一部譯作,因譯者水平有限以及書中涉及技術較深,再加之譯者時間有限,難免有誤譯漏譯現象,還請讀者見諒。如有發現錯誤,請通過譯者郵箱或圖靈網站聯係以便修正。
在此感謝圖靈公司的編輯硃巍老師,她給瞭我許多指導和幫助。同時感謝圖靈其他編輯老師為本書付齣的辛苦努力。在翻譯初期,我的同事史盈盈女士給齣瞭許多寶貴的建議,在此錶示感謝。另外,感謝數據庫組的同事們在翻譯期間給予的理解和幫助。
王作佳
感謝我的團隊在翻譯期間給予的理解與支持。感謝王作佳提供的這次翻譯機會,讓我受益良多。感謝妻子孫婷的照顧與理解,能讓我有時間專心翻譯。感謝圖靈的各位編輯對本書付齣的努力。
劉迪
Oracle性能診斷藝術(第2版) epub pdf mobi txt 電子書 下載 2024
Oracle性能診斷藝術(第2版) 下載 epub mobi pdf txt 電子書