Oracle性能診斷藝術(第2版)

Oracle性能診斷藝術(第2版)
定價:714
NT $ 621
 

內容簡介

本書是兼具技術性與指導性的參考手冊。書中首先介紹了全書所需的基礎知識;接着描述如何借助相關工具識別和分析性能問題,如何利用動態性能視圖;接着重點關注負責將SQL語句生成執行計划的組件——查詢優化器;展示了Oracle數據庫為高效執行SQL語句提供的特性。

Christian Antognini數據庫專家,從1995年就開始致力於探究Oracle數據庫引擎的工作機制。長期關注邏輯與物理數據庫的設計、數據庫與Java應用程序的集成、查詢優化器以及與性能管理和優化相關的各個方面。目前任瑞士蘇黎世Trivadis公司首席顧問和性能教練,是OakTable網站核心成員。

王作佳,吉林長春人,畢業於太原工業學院。歷任Java開發工程師、Oracle數據庫管理員,現就職於北京一家服務公司,任職Oracle DBA,負責某省聯通數據庫高可用架構部署維護、數據庫性能調優等。目前對Oracle數據庫高可用及性能調優較為感興趣,另外有意進軍內存數據庫領域。個人郵箱:[email protected]

劉迪,遼寧錦州人,畢業於遼寧工業大學。Oracle數據庫工程師、10g OCM,現服務於北京某銀行,任職Oracle數據庫工程師,負責客戶現場維護工作。主要關注Oracle數據庫及其相關技術。個人郵箱:[email protected]
 

目錄

第一部分 基礎
第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 使用TRCSESS59
3.1.4 探查器60
3.1.5 使用TKPROF60
3.1.6 使用TVD$XTAT70
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 不使用DiagnosticsPack進行分析.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 Statspack136
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.110g方式.229
8.8.211g和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 EXPLAINPLAN語句.267
10.1.2 動態性能視圖270
10.1.3 自動工作負載存儲庫和
Statspack272
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/SQL392
12.4.2 OCI.395
12.4.3 JDBC396
12.4.4 ODP.NET.398
12.4.5 PHP399
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
第16章優化物理設計.584
參考文獻.606
網路書店 類別 折扣 價格
  1. 新書
    87
    $621