DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化-(第3版) 版權(quán)信息
- ISBN:9787302481188
- 條形碼:9787302481188 ; 978-7-302-48118-8
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化-(第3版) 本書特色
本書側(cè)重于介紹DB2數(shù)據(jù)庫的性能調(diào)優(yōu)。性能調(diào)優(yōu)是一個系統(tǒng)工程:全面監(jiān)控分析操作系統(tǒng)、I/O性能、內(nèi)存、應(yīng)用及數(shù)據(jù)庫才能快速找到問題根源;深刻理解DB2的鎖及并發(fā)機(jī)制、索引原理、數(shù)據(jù)庫參數(shù)、優(yōu)化器原理、統(tǒng)計分析和碎片整理等內(nèi)部機(jī)理才能針對性地快速提出解決問題的方法;快照、db2pd、db2expln以及各種管理視圖和表函數(shù)等則是必須熟練掌握的工具。本書覆蓋了進(jìn)行DB2數(shù)據(jù)庫性能調(diào)優(yōu)所需的全部知識和工具,并提供了大量的性能調(diào)優(yōu)的實際案例,這些案例都基于作者10多年積累的經(jīng)驗和總結(jié),其中包括了近年來大型銀行系統(tǒng)實際遇到的案例。本書還首次涵蓋了針對DB2 pureScale及同城雙活GDPC(地理上分離的pureScale集群)的性能調(diào)優(yōu)方法和實踐。
本書適合有一定DB2數(shù)據(jù)庫基礎(chǔ)知識和經(jīng)驗的數(shù)據(jù)庫工程師,以及希望深入、全面地掌握DB2數(shù)據(jù)庫性能分析和調(diào)優(yōu)知識的讀者,同時可以成為數(shù)據(jù)庫軟件開發(fā)人員開發(fā)高性能數(shù)據(jù)庫軟件的參考書。
DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化-(第3版) 內(nèi)容簡介
主要特色◆ 本書從性能相關(guān)的基本原理入手,全面講解了高性能系統(tǒng)設(shè)計、性能監(jiān)控、調(diào)優(yōu)工具、性能問題分析思路和解決方法。◆ 本書體現(xiàn)了作者多年調(diào)優(yōu)經(jīng)驗的心得體會,精選了大量的實戰(zhàn)案例,其中包含了近年大型銀行系統(tǒng)實際用到的性能技巧,參考價值和實用性極高。◆ 涵蓋了針對DB2 pureScale及GDPC(地理上分離的pureScale集群)的性能調(diào)優(yōu)方法和實踐。
DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化-(第3版) 目錄
第1章 性能調(diào)整概述 1
1.1 性能概述 2
1.2 性能評估 4
1.3 建立性能目標(biāo) 7
1.4 什么時候需要做性能調(diào)整 8
1.5 性能調(diào)整準(zhǔn)則 9
1.6 性能調(diào)整的方法和過程 10
1.6.1
性能調(diào)整的步驟 10
1.6.2
性能調(diào)整的限制 11
1.6.3
向客戶了解情況 11
1.6.4
性能調(diào)整流程圖 12
1.7 性能模型 15
1.7.1
輸入 17
1.7.2
處理 17
1.7.3
輸出 23
1.8 本章小結(jié) 24
第2章 操作系統(tǒng)及存儲的性能調(diào)優(yōu)
27
2.1
AIX性能監(jiān)控綜述 29
2.1.1
監(jiān)控工具 29
2.1.2
監(jiān)控系統(tǒng)總體運(yùn)行狀態(tài) 30
2.1.3
監(jiān)控CPU性能 34
2.1.4
監(jiān)控內(nèi)存使用 38
2.1.5
監(jiān)控存儲系統(tǒng)狀態(tài) 40
2.1.6
監(jiān)控網(wǎng)絡(luò)狀態(tài) 42
2.2 操作系統(tǒng)性能優(yōu)化 43
2.2.1
直接I/O和并發(fā)I/O 44
2.2.2
異步I/O和同步I/O 45
2.2.3
minpout和maxpout 47
2.2.4
文件系統(tǒng)和裸設(shè)備 47
2.2.5
負(fù)載均衡及條帶化(Striping) 48
2.3 邏輯卷和lvmo優(yōu)化 53
2.3.1
使用lvmo進(jìn)行優(yōu)化 54
2.3.2
卷組pbuf池 55
2.3.3
pbuf設(shè)置不合理導(dǎo)致性能
問題調(diào)整案例 56
2.3.4
使用ioo進(jìn)行優(yōu)化 59
2.4 操作系統(tǒng)性能調(diào)整總結(jié) 64
2.5 存儲I/O設(shè)計 65
2.6 存儲基本概念 65
2.6.1
硬盤 65
2.6.2
磁盤陣列技術(shù) 67
2.6.3
存儲的Cache 67
2.6.4
網(wǎng)絡(luò)存儲技術(shù) 68
2.7 存儲架構(gòu) 69
2.7.1
存儲I/O處理過程 69
2.7.2
RAID IOPS 70
2.7.3
RAID 10和RAID 5的比較 71
2.8 良好存儲規(guī)劃的目標(biāo) 74
2.9 良好存儲規(guī)劃的設(shè)計原則
75
2.10
存儲相關(guān)性能調(diào)整案例 76
2.11
存儲I/O性能調(diào)整總結(jié) 79
2.12
本章小結(jié) 80
第3章 DB2性能監(jiān)控 81
3.1 快照監(jiān)視器案例 81
3.1.1
監(jiān)控動態(tài)SQL語句 81
3.1.2
監(jiān)控臨時表空間使用 84
3.2 事件監(jiān)視器及監(jiān)控案例 87
3.3 利用表函數(shù)監(jiān)控 93
3.4 性能管理視圖及案例 97
3.4.1
監(jiān)控緩沖池命中率 99
3.4.2
監(jiān)控Package Cache大小 100
3.4.3
監(jiān)控執(zhí)行成本*高的SQL
語句 100
3.4.4
監(jiān)控運(yùn)行時間*長的SQL
語句 101
3.4.5
監(jiān)控SQL準(zhǔn)備和預(yù)編譯
時間*長的SQL語句 101
3.4.6
監(jiān)控執(zhí)行次數(shù)*多的SQL
語句 102
3.4.7
監(jiān)控排序次數(shù)*多的SQL
語句 103
3.4.8
監(jiān)控鎖等待時間 103
3.4.9
監(jiān)控Lock Chain 103
3.4.10
監(jiān)控鎖內(nèi)存的使用 106
3.4.11
監(jiān)控鎖升級、死鎖和
鎖超時 107
3.4.12
監(jiān)控全表掃描的SQL 108
3.4.13
檢查頁清理器是否足夠 108
3.4.14
監(jiān)控prefecher是否足夠 109
3.4.15
監(jiān)控數(shù)據(jù)庫內(nèi)存使用 110
3.4.16
監(jiān)控日志使用情況 111
3.4.17
監(jiān)控占用日志空間*舊的
事務(wù) 111
3.4.18
監(jiān)控存儲路徑 112
3.4.19
追蹤監(jiān)控歷史 113
3.5
db2pd 113
3.5.1
常用db2pd監(jiān)控選項和
示例 114
3.5.2
使用db2pd監(jiān)控死鎖
案例 126
3.5.3
db2pd使用問題總結(jié) 132
3.6 內(nèi)存監(jiān)控 133
3.6.1
db2pd 內(nèi)存監(jiān)控 133
3.6.2
db2mtrk 內(nèi)存監(jiān)控 137
3.7 本章小結(jié) 139
第4章 DB2配置參數(shù)調(diào)整 141
4.1 初識DB2配置參數(shù) 141
4.2 監(jiān)控和調(diào)優(yōu)實例級(DBM)
配置參數(shù) 143
4.2.1
代理程序相關(guān)配置參數(shù) 143
4.2.2
sheapthres 145
4.2.3
fcm_num_buffers 145
4.2.4
sheapthres_shr 146
4.2.5
intra_parallel 146
4.2.6
mon_heap_sz 147
4.3 監(jiān)控和調(diào)優(yōu)數(shù)據(jù)庫級配置
參數(shù) 147
4.3.1
緩沖池大小 147
4.3.2
日志緩沖區(qū)大小(logbufsz) 152
4.3.3
應(yīng)用程序堆大小
(applheapsz) 153
4.3.4
sortheap和sheapthres_shr 154
4.3.5
鎖相關(guān)配置參數(shù) 157
4.3.6
活動應(yīng)用程序的*大數(shù)目
(maxappls) 160
4.3.7
pckcachesz 161
4.3.8
catalogcache_sz 161
4.3.9
異步頁清除程序的數(shù)目
(num_iocleaners) 161
4.3.10
異步I/O服務(wù)器的數(shù)目
(num_ioservers) 163
4.3.11
avg_appls 163
4.3.12
chngpgs_thresh(DB) 164
4.3.13
maxfilop 164
4.3.14
logprimary、logsecond和
logfilsz 164
4.3.15
stmtheap 165
4.3.16
dft_queryopt 165
4.3.17
util_heap_sz (DB) 165
4.4 調(diào)整DB2概要注冊變量 166
4.4.1
db2_parallel_io 166
4.4.2
db2_evaluncommitted 168
4.4.3 db2_skipdeleted 168
4.4.4
db2_skipinserted 168
4.4.5
db2_use_page_container_tag 168
4.4.6
db2_selectivity 169
4.4.7
db2maxfscrsearch 169
4.5 內(nèi)存自動調(diào)優(yōu) 169
4.5.1
內(nèi)存自動調(diào)優(yōu)示例 170
4.5.2
啟用內(nèi)存自動調(diào)優(yōu)及
相關(guān)參數(shù) 171
4.5.3
內(nèi)存配置參數(shù)的配置原則 173
4.6 本章小結(jié) 174
第5章 鎖和并發(fā) 175
5.1 鎖的概念 176
5.1.1
數(shù)據(jù)一致性 176
5.1.2
事務(wù)和事務(wù)邊界 176
5.1.3
鎖的概念 178
5.2 鎖的屬性、策略及模式
183
5.2.1
鎖的屬性 183
5.2.2
加鎖策略 183
5.2.3
鎖的模式 184
5.2.4
如何獲取鎖 186
5.2.5
鎖的兼容性 188
5.3 隔離級別(Isolation
Levels) 189
5.3.1
可重復(fù)讀(RR—Repeatable
Read) 189
5.3.2
讀穩(wěn)定性(RS—Read
Stability) 191
5.3.3
游標(biāo)穩(wěn)定性(CS—Cursor
Stability) 192
5.3.4
當(dāng)前已提交(Currently
Committed) 194
5.3.5
未提交讀(UR—Uncommitted
Read) 194
5.3.6
隔離級別的摘要 196
5.4 鎖轉(zhuǎn)換、鎖等待、鎖升級和
死鎖 198
5.4.1
鎖轉(zhuǎn)換及調(diào)整案例 198
5.4.2
鎖升級及調(diào)整案例 200
5.4.3
鎖等待及調(diào)整案例 203
5.4.4
死鎖及調(diào)整案例 205
5.5 鎖相關(guān)的性能問題總結(jié)
209
5.6 鎖與應(yīng)用程序設(shè)計 211
5.7 鎖監(jiān)控工具 214
5.8 *大化并發(fā)性 218
5.8.1
選擇合適的隔離級別 218
5.8.2
盡量避免鎖等待、鎖升級和
死鎖 218
5.8.3
設(shè)置合理的注冊變量 218
5.9 本章小結(jié) 227
第6章 索引設(shè)計與優(yōu)化 229
6.1 索引概念 229
6.1.1
索引優(yōu)點 229
6.1.2
索引類型 231
6.2 索引結(jié)構(gòu) 231
6.3 理解索引訪問機(jī)制 234
6.4 索引設(shè)計 237
6.4.1
創(chuàng)建索引 237
6.4.2
創(chuàng)建集群索引 238
6.4.3
創(chuàng)建雙向索引 239
6.4.4
完全索引訪問 240
6.4.5
與創(chuàng)建索引相關(guān)的問題 241
6.4.6
創(chuàng)建索引示例 241
6.5 索引創(chuàng)建原則與示例 242
6.5.1
索引與謂詞 242
6.5.2
根據(jù)查詢使用的列建立
索引 244
6.5.3
根據(jù)條件語句中謂詞的選擇
度創(chuàng)建索引 245
6.5.4
避免在建有索引的列上使用
函數(shù) 246
6.5.5
在那些需要被排序的列上
創(chuàng)建索引 246
6.5.6
合理使用INCLUDE關(guān)鍵詞
創(chuàng)建索引 248
6.5.7
指定索引的排序?qū)傩?249
6.6 影響索引性能的相關(guān)配置
250
6.6.1
設(shè)置影響索引性能的配置
參數(shù) 250
6.6.2
為索引指定不同的表空間 250
6.6.3
確保索引的集群度 251
6.6.4
使表和索引統(tǒng)計信息保持
*新 251
6.7 索引維護(hù) 251
6.7.1
異步索引清除(AIC) 252
6.7.2
聯(lián)機(jī)索引整理碎片 254
6.7.3
查找使用率低下的索引 254
6.7.4
索引壓縮 256
6.8
DB2 Design Advisor
(db2advis) 256
6.9 本章小結(jié) 260
第7章 DB2優(yōu)化器 265
7.1
DB2編譯器介紹 266
7.2
SQL語句編譯過程 268
7.3 優(yōu)化器組件和工作原理
271
7.3.1
查詢重寫示例:謂詞移動、
合并和轉(zhuǎn)換 271
7.3.2
優(yōu)化器成本評估 276
7.3.3
本地謂詞基數(shù)(cardinality)
估計 277
7.3.4
連接基數(shù)(cardinality)估計 279
7.3.5
分布統(tǒng)計信息 283
7.3.6
列組統(tǒng)計信息對基數(shù)的
影響 287
7.4 數(shù)據(jù)訪問方式 297
7.4.1
全表掃描 297
7.4.2
索引掃描 298
7.4.3
掃描共享 301
7.5 連接方法 302
7.5.1
嵌套循環(huán)連接 303
7.5.2
合并連接 305
7.5.3
哈希連接 306
7.5.4
選擇*佳連接的策略 307
7.6 優(yōu)化級別 307
7.6.1
優(yōu)化級別概述 308
7.6.2
選擇優(yōu)化級別 311
7.6.3
設(shè)置優(yōu)化級別
312
7.7 基于規(guī)則的優(yōu)化 314
7.7.1
優(yōu)化器概要文件概述 314
7.7.2
啟用優(yōu)化概要文件 316
7.7.3
優(yōu)化概要文件使用示例 317
7.8 如何影響優(yōu)化器來提高性能
324
7.8.1
使DB2統(tǒng)計信息保持
*新 324
7.8.2
構(gòu)建適當(dāng)?shù)乃饕?324
7.8.3
配置合理的數(shù)據(jù)庫配置
參數(shù) 325
7.8.4
選擇合適的優(yōu)化級別 326
7.8.5
合理的存儲I/O設(shè)計 326
7.8.6
良好的應(yīng)用程序設(shè)計和
編碼 327
7.9 本章小結(jié) 329
第8章 統(tǒng)計信息更新與碎片整理
331
8.1 統(tǒng)計信息更新 332
8.1.1
統(tǒng)計信息的重要性 332
8.1.2
如何更新統(tǒng)計信息 333
8.1.3
統(tǒng)計信息更新示例 335
8.1.4
LIKE STATISTICS統(tǒng)計信息
更新 339
8.1.5
列組統(tǒng)計信息更新 340
8.1.6
分布統(tǒng)計信息更新 349
8.1.7
統(tǒng)計信息更新策略 355
8.2 自動統(tǒng)計信息更新 357
8.2.1
自動RUNSTATS的基本
概念 357
8.2.2
如何打開auto runstats 359
8.2.3
如何監(jiān)控auto runstats 361
8.2.4
自動收集統(tǒng)計視圖的統(tǒng)計
信息 362
8.3 碎片整理 363
8.3.1
碎片產(chǎn)生機(jī)制和影響 363
8.3.2
確定何時重組表和索引 364
8.3.3
執(zhí)行表、索引檢查是否需要
做REORG 367
8.3.4
REORG的用法和使用
策略 368
8.4 重新綁定程序包 371
8.5 本章小結(jié) 373
第9章 SQL語句調(diào)優(yōu) 375
9.1 通過監(jiān)控找出*消耗資源
的SQL語句 376
9.2 通過解釋工具分析SQL語句
執(zhí)行計劃 376
9.2.1
解釋表 377
9.2.2
db2expln 378
9.2.3
db2exfmt 380
9.2.4
各種解釋工具的比較 382
9.2.5
如何從解釋信息中獲取有
價值的建議 382
9.3 理解SQL語句如何工作 383
9.3.1
理解謂詞類型 383
9.3.2
排序和分組 387
9.3.3
連接方法 388
9.3.4
掃描方式 389
9.4
SQL調(diào)優(yōu)案例 390
9.4.1
盡量使用單條語句完成
邏輯 390
9.4.2
合理使用NOT IN和NOT
EXISTS 391
9.4.3
利用子查詢進(jìn)行優(yōu)化 392
9.4.4
調(diào)整表連接順序使JOIN
*優(yōu) 394
9.4.5
數(shù)據(jù)非均勻分布時手工指定
選擇性 395
9.4.6
使用UDF代替查詢中的
復(fù)雜部分 396
9.4.7
合并多條SQL語句到單個
SQL表達(dá)式 397
9.4.8
使用SQL一次處理一個
集合語義 398
9.4.9
在無副作用的情況下使用
SQL函數(shù) 400
9.4.10
小結(jié) 401
9.5 提高應(yīng)用程序性能 401
9.5.1
良好的SQL編碼規(guī)則 401
9.5.2
提高SQL編程性能 403
9.5.3
改進(jìn)游標(biāo)性能 405
9.5.4
根據(jù)業(yè)務(wù)邏輯選擇*低粒度
的隔離級別 406
9.5.5
通過REOPT綁定選項來
提高性能 406
9.5.6
統(tǒng)計信息、碎片整理和重新
綁定 407
9.5.7
避免不必要的排序 408
9.5.8
在C/S環(huán)境中利用SQL存儲
過程降低網(wǎng)絡(luò)開銷 408
9.5.9
在高并發(fā)環(huán)境下使用
連接池 408
9.5.10
使用Design Advisor(db2advis)
建議索引 408
9.5.11
提高批量刪除、插入和更新
速度 409
9.5.12
提高插入性能 409
9.5.13
高效的SELECT語句 410
9.6 高性能SQL語句注意事項 412
9.6.1
避免在搜索條件中使用復(fù)雜
的表達(dá)式 412
9.6.2
將 OPTIMIZE FOR n ROWS
子句與FETCH FIRST n
ROWS ONLY子句配合
使用 412
9.6.3
避免使用冗余的謂詞 412
9.6.4
避免使用多個帶有DISTINCT
關(guān)鍵字的聚集操作 413
9.6.5
避免連接列之間數(shù)據(jù)類型
不匹配 414
9.6.6
避免對表達(dá)式使用連接
謂詞 414
9.6.7
避免在謂詞中使用空操作
表達(dá)式來更改優(yōu)化器估算 415
9.6.8
確保查詢符合星型模式連接
的必需條件 415
9.6.9
避免使用非等式連接謂詞 416
9.6.10
避免使用不必要的外
連接 417
9.6.11
使用參數(shù)標(biāo)記來縮短動態(tài)
查詢的編譯時間 418
9.6.12
使用約束來提高查詢優(yōu)化
程度 418
9.7 本章小結(jié) 419
第10章 DB2集群調(diào)優(yōu) 421
10.1
DB2集群介紹 421
10.2
DB2集群參數(shù)解析 423
10.2.1
組緩沖池 423
10.2.2
全局鎖管理器 425
10.2.3
DB2 pureScale集群相關(guān)
參數(shù) 425
10.3
DB2集群性能監(jiān)控 429
10.3.1
查看CF資源利用 429
10.3.2
查看各個成員的負(fù)載
情況 430
10.3.3
查看緩沖池命中率 430
10.3.4
查看全局鎖性能 438
10.3.5
查看頁回收(Page Reclaiming)
行為 441
10.4
DB2集群設(shè)計調(diào)優(yōu) 442
10.4.1
使用小的pagesize 442
10.4.2
使用大的extentsize 442
10.4.3
使用LOB inline方法 442
10.4.4
使用大的pctfree設(shè)置 443
10.4.5
巧用CURRENT
MEMBER 443
10.4.6
巧用隨機(jī)索引 444
10.5
同城雙活集群介紹 444
10.6
同城雙活集群調(diào)優(yōu) 446
10.6.1
減少存儲影響 446
10.6.2
減少通信影響 447
10.6.3
熱點表調(diào)優(yōu)案例 447
10.7
本章小結(jié) 450
第11章 DB2調(diào)優(yōu)案例、問題總結(jié)和
技巧 451
11.1
調(diào)優(yōu)案例1:某移動公司存儲
設(shè)計不當(dāng)和SQL引起的I/O
瓶頸 451
11.2
調(diào)優(yōu)案例2:某銀行知識庫
系統(tǒng)鎖等待、鎖升級引起
性能瓶頸 458
11.3
調(diào)優(yōu)案例3:某汽車制造商
ERP系統(tǒng)通過調(diào)整統(tǒng)計信息
提高性能 466
11.4
調(diào)優(yōu)案例4:某農(nóng)信社批量代收
電費(fèi)批處理慢調(diào)優(yōu)案例 476
11.5
調(diào)優(yōu)案例5:某銀行系統(tǒng)
字段類型定義錯誤導(dǎo)致
SQL執(zhí)行時間變長 480
11.6
調(diào)優(yōu)案例6:某銀行客戶回單
系統(tǒng)CPU使用率高 483
11.7
調(diào)優(yōu)案例7:某銀行手機(jī)銀行
系統(tǒng)latch競爭導(dǎo)致active
session高、性能慢問題 488
11.8
調(diào)優(yōu)學(xué)習(xí)案例:利用壓力
測試程序?qū)W習(xí)DB2調(diào)優(yōu) 492
展開全部
DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化-(第3版) 作者簡介
牛新莊博士,現(xiàn)任中國民生銀行信息科技部總經(jīng)理,長期致力于銀行業(yè)信息科技建設(shè)和管理工作。 作為國內(nèi)頂尖的數(shù)據(jù)庫資深專家,曾先后為建設(shè)銀行、中信銀行、交通銀行、廣東農(nóng)信、青島海爾等大型企業(yè)提供數(shù)據(jù)庫顧問服務(wù),為各行業(yè)的IT人才提供技術(shù)培訓(xùn),在《程序員》雜志開辟數(shù)據(jù)庫專欄,為從業(yè)者答疑解惑,廣泛地推動了國內(nèi)數(shù)據(jù)庫技術(shù)的發(fā)展和信息技術(shù)的傳播。 作為國內(nèi)信息科技領(lǐng)域的領(lǐng)軍人物,積極推進(jìn)移動互聯(lián)、分布式、大數(shù)據(jù)、區(qū)塊鏈等新技術(shù)領(lǐng)域創(chuàng)新,傾力打造滿足業(yè)務(wù)飛速發(fā)展的信息系統(tǒng)。 他還任浙江大學(xué)、武漢大學(xué)、對外經(jīng)貿(mào)大學(xué)、北京交通大學(xué)等多家高校和科研機(jī)構(gòu)的兼職教授,并擔(dān)任銀監(jiān)會信息科技發(fā)展與風(fēng)險管理專家、中國工程建設(shè)標(biāo)準(zhǔn)化協(xié)會信息通信專業(yè)委員會專家、中國DB2用戶協(xié)會CDUG理事長、IBM信息管理客戶顧問委員會主席、中央企業(yè)網(wǎng)絡(luò)安全與信息化服務(wù)共享聯(lián)盟智庫首批專家等職務(wù)。 此外,擁有OCP、AIX、DB2、HP-UX、MQ、CICS和WebSphere等二十多項國際認(rèn)證,獲得過國內(nèi)數(shù)據(jù)庫領(lǐng)域最高榮譽(yù)的“中國首屆杰出數(shù)據(jù)庫工程師”獎、首屆IBM杰出軟件專家獎、“IT 168技術(shù)卓越”獎等獎項,以及“中國杰出CIO”等榮譽(yù)稱號。