DB2設計、管理與性能最佳化藝術

DB2設計、管理與性能最佳化藝術

《DB2設計、管理與性能最佳化藝術》是2013年9月清華大學出版社出版的圖書,作者是王飛鵬、李玉明、朱志輝、王富國。

基本介紹

  • 中文名:DB2設計、管理與性能最佳化藝術
  • 作者:王飛鵬、李玉明、朱志輝、王富國
  • 出版社:清華大學出版社
  • 出版時間:2013年9月
  • 定價:79 元
  • ISBN:9787302326618
內容簡介,圖書目錄,

內容簡介

本書內容嚴謹精細、生動活潑,從內容來看,共分為四大部分,共11章。第一部分包括第1章和第2章,提出了兩種性能最佳化方法學,包括理想化的自上而下方法學和救急專用的自下而上方法學,隨後通過一個真實的實戰案例,闡述了如何靈活運用方法學。第二部分是設計部分,包括第3章、第4章和第5章,分別談到了物理設計、基礎邏輯設計和高級邏輯設計,這是設計一個高質量的資料庫系統所必須掌握的內容。第三部分是性能最佳化部分,包括第6章、第7章、第8章和第9章,講述了如何對DB2進行性能監控,如何調整參數和最佳化維護工具,如何調整鎖和日誌來最佳化高並發系統,如何來最佳化最耗資源的SQL語句。第四部分是有關高級設計與最佳化內容,包括第10章和第11章,講述了如何設計和最佳化大容量數據倉庫,講述了如何設計和最佳化DB2 pureScale集群。

圖書目錄

第1章 性能最佳化方法學
1.1 什麼是性能問題 2
1.1.1 如何發現性能問題 2
1.1.2 衡量性能的關鍵指標 2
1.1.3 性能基準測試 3
1.1.4 制定最佳化目標 3
1.2 性能最佳化方法學 3
1.2.1 幾種常見誤區 4
1.2.2 自上而下(From Top To Down)方法學 4
1.2.3 自下而上(From Down To Top)方法學 5
1.2.4 自上而下和自下而上,如何選擇? 5
1.3 高質量資料庫設計 5
1.3.1 充分了解需求 6
1.3.2 設計概念模型 7
1.3.3 設計邏輯結構 8
1.3.4 設計物理結構 10
1.3.5 套用開發階段 10
1.3.6 運行維護階段 11
1.4 性能調整與最佳化 11
1.4.1 磁碟瓶頸 12
1.4.2 CPU瓶頸 14
1.4.3 記憶體瓶頸 16
1.4.4 網路瓶頸 17
1.4.5 懶惰系統 17
1.4.6 關鍵SQL語句最佳化 18
1.5 性能最佳化基本準則 18
1.6 小結 19
第2章 實戰案例研究與分享
2.1 性能問題的提出 21
2.1.1 系統現狀:從Oracle RAC談起 21
2.1.2 性能最佳化解決方案:“分庫”架構 22
2.1.3 高可用解決方案:DB2 HADR 24
2.2 實施:經營分析庫 26
2.2.1 DB2資料庫安裝 26
2.2.2 作業系統參數配置 27
2.2.3 實例創建與配置 29
2.2.4 存儲規劃與檔案系統創建 30
2.2.5 資料庫創建 32
2.2.6 DB2參數配置 35
2.3 實施:DB2 HADR 38
2.3.1 準備工作 38
2.3.2 複製資料庫 38
2.3.3 配置HADR 43
2.3.4 啟動主從資料庫 44
2.3.5 HADR切換演練 45
2.3.6 為JAVA套用配置ACR 47
2.4 性能分析 48
2.4.1 業務分析 49
2.4.2 系統分析 49
2.4.3 最佳化方法學與計畫 50
2.5 性能最佳化 51
2.5.1 全局調整和最佳化 51
2.5.2 人力資源模組最佳化 64
2.5.3 查詢分析模組最佳化 69
2.5.4 報表套用最佳化 72
2.5.5 性能最佳化總結 74
2.6 小結 75
第3章 高質量物理設計
3.1 從資料庫硬體選型談起 77
3.1.1 對主機的考慮 77
3.1.2 對存儲的考慮 77
3.1.3 對網路環境的考慮 78
3.1.4 電信公司選型結果 78
3.2 存儲設計 79
3.2.1 磁碟與磁碟陣列技術 80
3.2.2 條帶化 83
3.2.3 存儲設計 84
3.2.4 為電信公司規劃存儲 87
3.2.5 為電信公司創建資料庫 87
3.3 表空間設計 88
3.3.1 表空間管理方式 88
3.3.2 表空間類型 91
3.3.3 表空間參數設定 92
3.3.4 為電信公司設計表空間 93
3.4 記憶體的設定管理 94
3.4.1 解密DB2記憶體 95
3.4.2 緩衝池設計 99
3.4.3 緩衝池命中率 101
3.4.4 STMM自動管理記憶體 102
3.4.5 為電信公司設計緩衝池 102
3.5 高質量物理設計最佳實踐 103
3.5.1 硬體配置 103
3.5.2 存儲的設計配置 103
3.5.3 資料庫參數初始化選擇 104
3.5.4 記憶體設定管理 104
3.5.5 表空間設計管理 104
3.6 小結 105
第4章 經典邏輯設計
4.1 資料庫設計不僅是一種藝術 107
4.1.1 業務需求 107
4.1.2 性能需求 107
4.2 常規表設計體現真功夫 108
4.2.1 規範化決定成敗 108
4.2.2 用戶與模式 109
4.2.3 欄位與類型 111
4.2.4 建表的講究 114
4.2.5 鍵與約束 118
4.2.6 序列、標識列和生成列 120
4.2.7 處理大對象的智慧 122
4.3 撲朔迷離的臨時表 125
4.3.1 聲明全局臨時表(DGTT) 125
4.3.2 創建全局臨時表(CGTT) 127
4.3.3 臨時表小結 128
4.4 無處不在的時態表 129
4.4.1 無處不在的時間 129
4.4.2 系統時態表 130
4.4.3 套用時態表 134
4.4.4 雙時態表 138
4.4.5 將普通錶轉換為時態表 139
4.5 索引設計是一招鮮,吃遍天 140
4.5.1 DB2索引長什麼樣 140
4.5.2 為了性能設計索引 142
4.5.3 吃透組合索引 148
4.5.4 創建索引 150
4.5.5 索引的常見誤區 150
4.6 觸發器設計一瞥 155
4.7 小結 156
第5章 高級邏輯設計
5.1 如何處理TB級的數據 158
5.1.1 方法學指導 158
5.1.2 合理運用高級設計技術 158
5.2 DB2 DPF設計 159
5.2.1 DB2 DPF技術內幕 160
5.2.2 DB2 DPF設計最佳實踐 161
5.3 表分區設計 162
5.3.1 表分區技術內幕 163
5.3.2 全局索引vs分區索引 166
5.3.3 轉入轉出 168
5.3.4 分區排除技術 169
5.3.5 分區維護 172
5.3.6 V10新特性:多溫度存儲 173
5.4 MDC表設計 175
5.4.1 MDC技術內幕 175
5.4.2 MDC表設計最佳實踐 177
5.4.3 案例:“吃磁碟”的MDC表 178
5.5 分區技術對比:DB2 vs Oracle 179
5.6 MQT設計 184
5.6.1 MQT的能力 184
5.6.2 創建MQT必須掌握的要點 187
5.6.3 深入討論MQT的刷新機制 188
5.6.4 MQT設計最佳實踐 190
5.7 強大的數據壓縮 192
5.7.1 行壓縮深度剖析 192
5.7.2 V10新特性:自適應壓縮 194
5.7.3 數據壓縮實踐與探索 195
5.8 小結 198
第6章 系統監控
6.1 由一則新聞想到的 200
6.2 作業系統監控 200
6.2.1 CPU監控 201
6.2.2 I/O監控 203
6.2.3 記憶體監控 204
6.2.4 網路監控 206
6.3 資料庫監控 207
6.3.1 快照監視器 207
6.3.2 事件監視器 211
6.3.3 監視器表函式 214
6.3.4 管理視圖 218
6.3.5 db2pd 219
6.3.6 db2top 222
6.4 關鍵SQL語句監控 223
6.4.1 監控最耗費用戶CPU時間的動態SQL 223
6.4.2 監控訪問熱點對象執行次數最多的SQL 224
6.4.3 監控運行時間最長的SQL 224
6.4.4 監控執行次數最多的SQL 224
6.4.5 監控排序次數最多的SQL 225
6.5 關鍵性能指標(KPI) 225
6.5.1 緩衝區命中率 225
6.5.2 包緩衝區命中率 226
6.5.3 編目緩衝區命中率 226
6.5.4 緩衝區讀寫平均回響時間 226
6.5.5 日誌寫入速度 227
6.5.6 鎖升級及死鎖 227
6.5.7 排序溢出率 227
6.5.8 數據、索引頁異步清除比例 228
6.5.9 髒頁偷取次數 228
6.6 融會貫通——監控的最佳實踐 229
6.6.1 CPU瓶頸問題的監控與診斷 229
6.6.2 I/O瓶頸的監控與診斷 231
6.6.3 記憶體瓶頸的監控與診斷 234
6.6.4 懶惰系統的監控與診斷 236
6.7 圖形化性能管理器 237
6.8 小結 238
第7章 配置參數與運維工具最佳化
7.1 配置參數最佳化 240
7.1.1 作業系統參數最佳化 240
7.1.2 DBM參數最佳化 242
7.1.3 DB參數最佳化 244
7.1.4 註冊變數最佳化 249
7.1.5 常見問題總結 250
7.2 日常運維工具的使用與最佳化 250
7.2.1 知已知彼——統計信息收集 250
7.2.2 集中兵力——碎片整理工具 251
7.2.3 隨機應變——重新綁定 253
7.3 數據移動工具 254
7.3.1 導出數據(EXPORT) 255
7.3.2 導入數據(IMPORT) 256
7.3.3 LOAD——導入大數據的核武器 259
7.3.4 LOAD FROM CURSOR輕鬆移動數據 269
7.3.5 INGEST——性能和可用性間平衡的使者 270
7.3.6 使用db2move在資料庫間移動數據 274
7.3.7 db2relocatedb——DB2移形換位 276
7.3.8 存儲過程——內部數據挪移的利器 278
7.3.9 特殊對象的移動方式 283
7.4 備份恢復工具最佳化 286
7.4.1 備份的基本原理與最佳化 286
7.4.2 DB2崩潰恢復、版本恢復和前滾恢復與最佳化 290
7.5 運維工具的調速策略 294
7.6 小結 296
第8章 鎖和日誌最佳化
8.1 DB2鎖機制解析 299
8.1.1 沒有鎖會發生什麼 299
8.1.2 鎖的類型和兼容性 301
8.2 DB2隔離級 305
8.2.1 DB2提供的四種隔離級 305
8.2.2 如何設定隔離級 307
8.3 實戰案例:鎖問題分析和解決 308
8.3.1 什麼是鎖問題 308
8.3.2 從監控開始 309
8.3.3 鎖等待分析和解決 311
8.3.4 鎖逾時分析和解決 314
8.3.5 鎖升級分析和解決 315
8.3.6 死鎖分析和解決 316
8.4 深入淺出——DB2日誌的秘密 320
8.4.1 DB2日誌的原理 320
8.4.2 DB2日誌的模式 323
8.4.3 日誌最佳化的最佳實踐 325
8.5 並發機制比較:DB2 vs Oracle 326
8.5.1 鎖與隔離級別:DB2 vs Oracle 326
8.5.2 日誌:DB2 vs Oracle 327
8.6 並發性能最佳化 328
8.6.1 套用開發 328
8.6.2 資料庫調優 329
8.7 小結 330
第9章 SQL語句最佳化實戰
9.1 SQL最佳化基礎,理解DB2最佳化器 332
9.1.1 SQL語句的編譯過程 332
9.1.2 DB2最佳化器的核心作用 333
9.1.3 SQL語句最佳化過程 334
9.2 SQL最佳化關鍵:分析訪問計畫 334
9.2.1 解釋(Explain)工具 334
9.2.2 解讀訪問計畫 338
9.2.3 表掃描與索引掃描 345
9.2.4 嵌套循環連線、歸併連線和哈希連線 348
9.2.5 基數估計和統計信息 353
9.2.6 用最佳化概要定製訪問計畫 362
9.3 實戰案例集錦 366
9.3.1 案例1:不可思議的物理讀次數 367
9.3.2 案例2:理想的索引沒用上 370
9.3.3 案例3:標記位(Flag)數據上的runstats時機 374
9.3.4 案例4:NLJOIN vs HSJOIN大比拼 377
9.3.5 案例5:不是壓縮惹的禍 381
9.3.6 案例6:居高不下的CPU占用率 385
9.4 高級SQL語句套用 390
9.4.1 Merge語句 390
9.4.2 層次查詢和SQL遞歸 392
9.4.3 報表開發中的GROUP BY擴展 398
9.5 編寫高效SQL語句 401
9.5.1 不要檢索多餘的數據 401
9.5.2 避免在連線謂詞中使用複雜表達式 402
9.5.3 將複雜表達式放在常量上 402
9.5.4 使用DB2提供的日期類型 403
9.5.5 謹慎對待隱式類型轉換 404
9.5.6 外連線的順序 404
9.5.7 IN和EXISTS子查詢 405
9.5.8 OFNR和FFNR子句 410
9.5.9 動態SQL vs靜態SQL 410
9.5.10 分組拼接字元串:LISTAGG 412
9.5.11 事務結束後及時COMMIT 412
9.6 小結 413
第10章 DB2數據倉庫設計與最佳化
10.1 數據倉庫是什麼 415
10.1.1 數據倉庫的誤區 415
10.1.2 數據倉庫的體系結構 417
10.2 支撐數據倉庫的DB2特性 417
10.2.1 分區資料庫 417
10.2.2 靈活的數據分區 419
10.2.3 多分區環境下的連線(Join)策略 422
10.2.4 物化查詢表 424
10.3 DB2數據倉庫設計 424
10.3.1 BCU/BPU的設計原則 424
10.3.2 數據BPU上存儲劃分 427
10.3.3 資料庫的檔案系統劃分 427
10.3.4 倉庫中誕生的資料庫 428
10.3.5 資料庫分區組的設計 428
10.3.6 緩衝池的設計 429
10.3.7 資料庫日誌的設計 429
10.3.8 表空間的設計 430
10.3.9 表的存放技巧 430
10.3.10 數據壓縮 431
10.4 數據倉庫實戰 431
10.4.1 硬體環境 431
10.4.2 實例的規劃與實施 432
10.4.3 資料庫的規劃與實施 436
10.4.4 參數設定 439
10.4.5 其他操作 440
10.5 工作負載管理(WLM) 442
10.5.1 管理已知的工作負載 442
10.5.2 管理不可預見的工作負載 443
10.5.3 管理並行的LOAD工作負載 446
10.5.4 監控工作負載 446
10.6 數據倉庫最佳化總結 448
10.6.1 與OLTP系統的區別 448
10.6.2 設定最佳化目標 449
10.6.3 物理最佳化 449
10.6.4 邏輯最佳化 450
10.7 與Oracle數據倉庫比較 450
10.8 小結 451
第11章 DB2 pureScale集群資料庫
11.1 深入淺出DB2 pureScale架構 453
11.1.1 DB2 pureScale架構 453
11.1.2 DB2 pureScale的特點 454
11.1.3 DB2 pureScale與DB2 DPF的區別 455
11.2 從細節入手:與Oracle RAC對比 455
11.3 某銀行DB2 pureScale實戰案例 457
11.3.1 從硬體配置開始 457
11.3.2 突破難點:網路規劃 458
11.3.3 抓住重點:存儲與檔案系統 465
11.3.4 檢查與配置 467
11.3.5 正式安裝 471
11.3.6 資料庫部署 473
11.3.7 套用端配置 473
11.4 DBA必須掌握的: DB2 pureScale實用運維命令 476
11.4.1 日常管理命令 477
11.4.2 節點維護命令 479
11.4.3 GPFS檔案系統管理命令 480
11.4.4 監控命令 481
11.5 DB2 pureScale規劃總結 484
11.6 小結 485
後記 信念的奇蹟
縮略語
參考文獻

相關詞條

熱門詞條

聯絡我們