《db2设计与性能优化:原理、方法与实践》原汁原味地展示了db2设计和优化技术,深入剖析了db2的工作原理。全书分为4部分,共11章。 第一部分解析数据库性能的本质问题。第二部分从设计高性能数据库的角度,详细介绍如何使用db2数据库设计高质量的应用系统,内容包括db2数据库逻辑设计、db2数据库物理设计、db2 purexml数据库设计及db2工作负载设计。第三部分介绍如何优化db2数据库,内容包括性能监控及参数调整、sql语句优化策略、锁和日志优化等。第四部分阐述db2高级性能加速技术,主要包括db2 purescale集群和soliddb高速缓存加速。
附录部分列出了常用监控命令用法和缩略语释义,还特别提供了pat树的放大图,供读者进行数据库性能优化时使用。
《db2设计与性能优化:原理、方法与实践》适合db2数据库设计人员、dba、数据库性能分析人员、数据库开发人员、运维人员及应用开发工程师阅读和参考,也可用做高校相关专业或培训班的教材。
db2设计与性能优化:原理、方法与实践目录:
第一部分 db2基础
第1章 我看db2设计与优化 1
1.1 数据库设计与性能优化 2
1.1.1 收集需求 3
1.1.2 设计概念模型 4
1.1.3 设计逻辑结构 5
1.1.4 设计物理结构 6
1.1.5 实施、运行和维护阶段 8
1.2 性能问题 8
1.2.1 什么是性能问题 8
1.2.2 为系统做性能基准测试 9
1.2.3 制订性能优化目标 10
1.2.4 把问题分类 10
1.3 使用pat方法学解决问题 11
1.3.1 什么是pat方法学 11
1.3.2 pat方法学优化策略 11
1.3.3 使用pat方法学 15
1.3.4 使用pat方法学的步骤 25
1.3.5 pat树使用建议 26
.1.4 小结 26
第2章 性能优化利器——pat方法 28
2.1 优化步骤 29
2.2 业务分析 29
2.2.1 经营分析系统的架构 29
2.2.2 性能问题的提出 31
2.3 系统分析 31
2.3.1 硬件和操作系统 32
2.3.2 数据库物理设计 33
2.3.3 分析结果 34
2.4 制订优化计划 35
2.4.1 优化计划安排 35
2.4.2 实践优化策略 35
2.5 使用pat方法 36
2.5.1 优化“每天下午系统响应慢”问题(perf_slowafternoon_sys) 36
2.5.2 优化“大数据转入”问题(perf_load_app) 37
2.5.3 优化“客户流失分析”问题(perf_customer_app) 38
2.5.4 优化“账户资费”问题(perf_acc_app) 39
2.5.5 优化“数据质量管理”问题(perf_data_app) 41
2.5.6 优化“系统逐渐变慢”问题(perf_slowdown_sys) 42
2.5.7 优化总结 45
2.6 小结 45
第二部分 db2数据库设计
第3章 高质量逻辑设计 48
3.1 常规表设计 49
3.1.1 表设计的原则 49
3.1.2 列定义原则 52
3.1.3 数据完整性设计 53
3.1.4 其他考虑因素 54
3.2 索引设计 56
3.2.1 索引的概念 56
3.2.2 深入解析索引原理 60
3.2.3 创建索引 67
3.2.4 索引设计原则 67
3.2.5 索引维护 70
3.3 mdc表设计 71
3.3.1 多维群集(mdc) 71
3.3.2 块索引 72
3.3.3 mdc表的优势 73
3.3.4 mdc表设计原则 74
3.4 表分区设计 76
3.4.1 分区表 76
3.4.2 分区表索引 78
3.4.3 转入转出 80
3.4.4 案例分析 82
3.5 dpf设计 83
3.5.1 数据库分区 83
3.5.2 数据库分区组 87
3.5.3 dpf设计原则 88
3.5.4 mdc、dpf和表分区 90
3.6 mqt表设计 91
3.6.1 mqt表介绍 91
3.6.2 mqt表适用范围 93
3.6.3 mqt表设计原则 93
3.6.4 mqt表设计示例 94
3.7 临时表设计 95
3.7.1 全局临时表(cgtt/dgtt) 95
3.7.2 临时表设计 96
3.7.3 设计示例 97
3.8 小结 98
第4章 高质量物理设计 100
4.1 物理设计 101
4.1.1 确定数据库的物理结构 101
4.1.2 评价物理结构 102
4.2 设置和管理cpu 103
4.2.1 db2的并行处理smp 103
4.2.2 db2的并行处理mpp 104
4.2.3 smp集群(smp+mpp) 105
4.3 设置和管理i/o 106
4.3.1 磁盘和存储设计 107
4.3.2 磁盘阵列技术 109
4.3.3 条带化 111
4.3.4 i/o相关配置参数 113
4.3.5 i/o存储设计小结 114
4.3.6 i/o设计范例 116
4.4 表空间设计 116
4.4.1 表空间概念 116
4.4.2 表空间类型 117
4.4.3 表空间设计总结 119
4.4.4 表空间设计范例 127
4.5 设置和管理内存 128
4.5.1 内存 128
4.5.2 缓冲池设计 134
4.5.3 stmm内存自动管理 140
4.6 数据压缩 143
4.6.1 压缩的重要性 143
4.6.2 压缩的种类 144
4.7 小结 146
第5章 purexml数据库设计 149
5.1 db2 purexml 150
5.1.1 purexml之风采 150
5.1.2 xml存储 151
5.1.3 xquery与sql/xml 153
5.1.4 xml schema 157
5.2 xml索引 159
5.2.1 xml索引类型 159
5.2.2 创建索引 160
5.2.3 xml索引优化 161
5.3 使用purexml设计高效的数据库 164
5.3.1 动态表单类设计 164
5.3.2 元数据类设计 165
5.3.3 数据交换类设计 166
5.3.4 社交网络类设计 167
5.4 xml数据库的性能优化 168
5.5 小结 170
第6章 工作负载设计 172
6.1 db2工作负载介绍 173
6.2 工作负载管理器组件 176
6.2.1 工作负载 176
6.2.2 服务类 178
6.2.3 阈值 180
6.2.4 工作类集合和工作操作集合 182
6.2.5 db2和aix / linux wlm 185
6.2.6 小结 186
6.3 wlm监控 187
6.3.1 监控环境 187
6.3.2 工作负载监控示例 189
6.4 设计db2工作负载 193
6.5 工作负载范例 194
6.6 小结 195
第三部分 db2数据库性能优化
第7章 db2配置优化与监控 197
7.1 配置参数优化 198
7.1.1 操作系统参数优化 198
7.1.2 dbm参数优化 199
7.1.3 db参数优化 201
7.1.4 注册变量优化 207
7.1.5 常见问题总结 207
7.2 性能监控的途径 209
7.2.1 快照监控 209
7.2.2 事件监控 216
7.2.3 db2pd监控 219
7.3 新监控框架 222
7.3.1 表函数 222
7.3.2 管理视图 225
7.4 系统监控的方法 227
7.4.1 cpu监控 227
7.4.2 内存监控 230
7.4.3 i/o监控 233
7.5 db2高级监控工具 236
7.5.1 db2top 236
7.5.2 data studio管理控制台 237
7.5.3 optim性能管理器 239
7.6 本章小结 239
第8章 sql语句性能优化实战 241
8.1 sql语句编写 242
8.1.1 谓词 242
8.1.2 多余的连接 243
8.1.3 子查询 244
8.1.4 外连接 244
8.1.5 union all的使用 245
8.1.6 having子句 245
8.1.7 ofnr和ffnr子句 245
8.1.8 使用参数标记 246
8.2 优化器 246
8.2.1 优化级别 248
8.2.2 注册变量 250
8.2.3 内存参数 251
8.2.4 表和索引设计 251
8.2.5 统计信息 251
8.2.6 信息性约束 253
8.3 sql语句访问计划分析 254
8.3.1 解释工具 254
8.3.2 查询重写 258
8.3.3 访问路径 260
8.3.4 连接方法 265
8.3.5 问题sql语句分析 268
8.4 其他优化建议 275
8.4.1 特殊的优化方法 275
8.4.2 design advisor优化指导 278
8.4.3 语句集中器 278
8.5 存储过程优化 280
8.6 xquery优化 288
8.6.1 xquery简介 288
8.6.2 如何使用 289
8.7 数据在线优化 294
8.7.1 reorgchk 294
8.7.2 reorg 296
8.8 本章小结 298
第9章 锁和日志优化 302
9.1 锁 303
9.1.1 锁等待和超时 303
9.1.2 锁升级 304
9.1.3 死锁 304
9.2 锁的类型与兼容性 306
9.2.1 锁的类型 306
9.2.2 锁兼容 309
9.3 隔离级别与影响并发的因素 310
9.3.1 隔离级别介绍 310
9.3.2 db2注册变量 311
9.3.3 当前已落实 312
9.4 锁监控和问题解决 313
9.4.1 锁等待监控 314
9.4.2 锁超时监控 318
9.4.3 死锁监控 327
9.5 日志与性能 331
9.5.1 循环日志 332
9.5.2 归档日志 332
9.5.3 日志的使用 333
9.5.4 写日志和写表 333
9.5.5 日志配置参数 334
9.6 日志监控与优化 337
9.6.1 日志监控 337
9.6.2 日志瓶颈与优化 339
9.7 本章小结 340
第四部分 高级优化技术
第10章 purescale海量事务处理 342
10.1 什么是purescale 343
10.2 purescale架构 344
10.3 db2 purescale和 oracle rac的对比 346
10.4 db2 purescale实例 347
10.4.1 实例背景 347
10.4.2 硬件配置 348
10.4.3 软件安装配置 351
10.4.4 客户应用测试 354
10.5 小结 358
第11章 soliddb高速缓存优化 360
11.1 什么是soliddb高速缓存 361
11.2 soliddb高速缓存db2数据 364
11.3 soliddb高速缓存应用场合 364
11.4 soliddb高速缓存架构 365
11.5 电信行业应用案例 366
11.5.1 应用背景 366
11.5.2 使用soliddb高速缓存加速 367
11.6 小结 375
附录a 常用监控命令用法 377
附录b 缩略语释义 382
后记 389
参考文献 391