DB2数据库性能调整和优化PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:牛新庄著
- 出 版 社:北京:清华大学出版社
- 出版年份:2009
- ISBN:9787302199533
- 页数:503 页
第1章 性能调整概述 1
1.1 性能概述 2
1.2 性能评估 4
1.3 建立性能目标 7
1.4 什么时候需要做性能调整 8
1.5 性能调整准则 9
1.6 性能调整的方法和过程 10
1.6.1 性能调整的步骤 10
1.6.2 性能调整的限制 11
1.6.3 向客户了解情况 11
1.6.4 性能调整流程图 12
1.7 性能调整总结 15
第2章 存储I/O设计 19
2.1 存储基本概念 20
2.1.1 硬盘 20
2.1.2 磁盘阵列技术 21
2.1.3 存储的Cache 22
2.1.4 LOPS 22
2.1.5 网络存储技术 23
2.2 存储架构 24
2.2.1 存储I/O处理过程 24
2.2.2 应用系统I/O流动图 24
2.2.3 RAIDIOPS 26
2.2.4 RAID10和RAID5的比较 28
2.3 存储相关性能调整案例 31
2.4 存储I/O设计总结 32
第3章 操作系统相关性能问题 35
3.1 HP-UX系统性能监控综述 35
3.1.1 监控资源对象和标准 35
3.1.2 监控工具 36
3.1.3 监控系统总体运行状态 36
3.1.4 性能状态的判定流程和监控命令 38
3.2 AIX性能监控综述 47
3.2.1 监控工具 47
3.2.2 监控系统总体运行状态 48
3.2.3 监控CPU性能 51
3.2.4 监控内存使用 55
3.2.5 监控存储系统状态 57
3.2.6 监控网络状态 58
3.3 操作系统性能优化 60
3.3.1 直接I/O和并发I/O 61
3.3.2 异步I/O和同步I/O 62
3.3.3 m1npout和maxpout 65
3.3.4 文件系统和裸设备 65
3.3.5 负载均衡及条带化(Striping) 66
3.4 逻辑卷和lvmo优化 72
3.4.1 使用lvmo进行优化 73
3.4.2 卷组pbuf池 73
3.4.3 pbuf设置不合理导致性能问题调整案例 74
3.4.4 使用ioo进行优化 78
3.5 总结 83
第4章 数据库物理设计和逻辑设计 85
4.1 数据库物理设计 85
4.1.1 表空间容器放置原则 85
4.1.2 数据库物理设计原则 86
4.2 数据库逻辑设计 86
4.2.1 缓冲池设计原则 86
4.2.2 表空间设计原则 91
4.3 使用Autoconfig设计数据库 99
4.4 其他高级设计技术 102
4.4.1 表分区及应用案例 102
4.4.2 数据库分区及应用案例 104
4.4.3 多维群集(MDC)及应用案例 106
4.4.4 物化查询表及应用案例 110
4.4.5 MDC、数据库分区、MQT和表分区配合使用 114
4.4.6 表压缩及应用案例 125
4.4.7 表压缩应用案例二 132
4.4.8 XML及应用案例 140
4.5 数据库设计总结 142
4.5.1 表空间与表设计方面的考虑 142
4.5.2 索引设计方面的考虑 146
4.5.3 缓冲池方面的考虑 147
4.5.4 总结 148
第5章 DB2性能监控 149
5.1 快照监视器案例 149
5.1.1 监控动态SQL语句 149
5.1.2 监控临时表空间使用 152
5.2 事件监视器及监控案例 153
5.3 利用表函数监控 158
5.4 性能管理视图及案例 163
5.4.1 监控缓冲池命中率 165
5.4.2 监控PackageCache大小 165
5.4.3 监控执行成本最高的SQL语句 166
5.4.4 监控运行最长的SQL语句 166
5.4.5 监控SQL准备和预编译时间最长的SQL语句 167
5.4.6 监控执行次数最多的SQL语句 167
5.4.7 监控排序次数最多的SQL语句 168
5.4.8 监控LOCK WAIT等待时间 168
5.4.9 监控LOCK CHAIN 169
5.4.10 监控锁内存使用 170
5.4.11 监控锁升级、死锁和锁超时 170
5.4.12 监控全表扫描的SQL 171
5.4.13 检查page cleaners是否足够 171
5.4.14 监控prefecher是否足够 172
5.4.15 监控数据库内存使用 173
5.4.16 监控日志使用情况 173
5.4.17 监控占用日志空间最旧的交易 174
5.4.18 用SQL监控健康指示器 174
5.4.19 监控存储路径 175
5.4.20 追踪监控历史 176
5.5 db2pd 176
5.5.1 常用db2pd监控选项和示例 177
5.5.2 使用db2pd监控死锁案例 191
5.5.3 db2pd使用问题总结 196
5.6 db2mtrk及监控案例 197
5.7 本章小结 200
第6章 数据库配置参数调整 201
6.1 数据库配置参数 201
6.2 监控和调优实例(DBM)配置参数 203
6.2.1 代理程序相关配置参数 203
6.2.2 SHEAPTHRES 206
6.2.3 FCM_NUM_BUFFERS 206
6.2.4 SHEAPTHRES_SHR 207
6.2.5 INTRA_PARALLEL 208
6.2.6 MON_HEAP_SZ 208
6.2.7 QUERY_HEAP_SZ 208
6.3 监控和调优DB配置参数 208
6.3.1 缓冲池大小 209
6.3.2 日志缓冲区大小(LOGBUFSZ) 215
6.3.3 应用程序堆大小(APPHEAPSZ) 216
6.3.4 SORTHEAP和SHEAPTHRES 217
6.3.5 锁相关配置参数 219
6.3.6 活动应用程序的最大数目(MAXAPPLS) 223
6.3.7 PKGCACHESZ 224
6.3.8 CATALOGCACH_Sz 224
6.3.9 异步页清除程序的数目(NUM_IOCLEANERS) 224
6.3.10 异步I/0服务器的数目(NUM_IOSERVERS) 226
6.3.11 组提交数目(MINCOMMIT) 226
6.3.12 AVG_APPLS 228
6.3.13 CHNGPGS_HRESH(DB) 228
6.3.14 MAXFILOP 229
6.3.15 LOGPRnMARY、LOGSECOND和LOGFILSZ 229
6.3.16 STMTHEAP 229
6.3.17 DFT_QUERYOPT 229
6.3.18 UTIL_HEAP_SZ(DB) 230
6.4 调整DB2概要注册变量 230
6.4.1 DB2_PARALLEL_IO 230
6.4.2 DB2_EVALUNCOMMITTED 232
6.4.3 DB2_SKIPDELETED 232
6.4.4 DB2_SKIPINSERTED 232
6.4.5 DB2_USE_PAGE_CONTAINER_TAG 233
6.4.6 DB2_SELECTIVITY 233
6.5 内存自动调优 233
6.5.1 内存自动调优示例 234
6.5.2 启用内存自动调优及相关参数 235
6.6 总结 237
第7章 锁和并发 239
7.1 锁等待及调整案例 239
7.1.1 锁等待问题解决流程和步骤 240
7.1.2 捕获引起锁等待的SQL 242
7.1.3 利用db2pd捕获锁超时 244
7.2 锁升级及调整案例 248
7.2.1 监控锁升级 249
7.2.2 锁升级调整 250
7.3 死锁及调整案例 252
7.3.1 利用事件监视器监控死锁 253
7.3.2 死锁案例 255
7.3.3 最小化死锁建议 257
7.4 隔离级别与锁 257
7.4.1 可重复读(RR—Repeatable Read) 258
7.4.2 读稳定性(RS—Read Stability) 259
7.4.3 游标稳定性(CS—Cursor Stability) 261
7.4.4 未提交读(UR—Uncommitted Read) 263
7.4.5 隔离级别加锁总结 265
7.4.6 隔离级别总结 269
7.5 最大化并发性 271
7.5.1 选择合适的隔离级别 271
7.5.2 尽量避免锁等待、锁升级和死锁 271
7.5.3 设置合理的注册变量 271
7.6 锁相关的性能问题总结 280
7.7 锁与应用程序开发 282
7.8 本章小结 285
第8章 索引设计与优化 287
8.1 索引概念 287
8.1.1 索引优点 287
8.1.2 索引类型 289
8.2 索引结构 290
8.3 理解索引访问机制 293
8.4 索引设计 296
8.4.1 创建索引 296
8.4.2 创建集群索引 297
8.4.3 创建双向索引 297
8.4.4 完全索引访问(index access only) 299
8.4.5 与创建索引相关的问题 299
8.4.6 创建索引示例 300
8.5 索引创建原则与示例 301
8.5.1 索引与谓词 301
8.5.2 根据查询所使用的列建立索引 303
8.5.3 根据条件语句中谓词的选择度创建索引 304
8.5.4 避免在建有索引的列上使用函数 305
8.5.5 在那些需要被排序的列上创建索引 306
8.5.6 合理使用INCLUDE关键词创建索引 307
8.5.7 指定索引的排序属性 308
8.6 影响索引性能的相关配置 309
8.6.1 设置影响索引性能的配置参数 309
8.6.2 为索引指定不同的表空间 309
8.6.3 确保索引的集群度 310
8.6.4 使表和索引统计信息保持最新 310
8.6.5 重组索引 311
8.7 索引维护 311
8.7.1 异步索引清除(AIC) 312
8.7.2 联机索引整理碎片 314
8.8 DB2 Design Advisor(db2advis) 315
8.9 索引调整总结 319
8.9.1 索引设计总结 319
8.9.2 索引性能总结 321
第9章 DB2优化器 325
9.1 DB2优化器介绍 326
9.2 SQL语句执行过程 328
9.3 优化器组件和工作原理 331
9.3.1 查询重写方法和示例:谓词移动、合并和转换 331
9.3.2 查询重写示例:视图合并 332
9.3.3 查询器重写示例:消除DISTINCT 335
9.3.4 查询器重写示例:隐含谓词 336
9.4 扫描方式 337
9.4.1 全表扫描 337
9.4.2 索引扫描 338
9.5 连接方法 341
9.5.1 嵌套循环连接 343
9.5.2 合并连接 344
9.5.3 哈希(hash)连接 345
9.5.4 选择最佳连接的策略 346
9.6 优化级别 347
9.7 如何影响优化器来提高性能 348
9.7.1 使DB2统计信息保持最新 348
9.7.2 构建适当的索引 349
9.7.3 配置合理的数据库配置参数 350
9.7.4 选择合适的优化级别 351
9.7.5 合理的存储1/0设计 351
9.7.6 良好的应用程序设计和编码 352
9.8 优化器总结 352
第10章 统计信息更新与碎片整理 353
10.1 统计信息更新 353
10.1.1 统计信息的重要性 353
10.1.2 统计信息更新示例 357
10.1.3 LIKE STATISTICS统计信息更新 360
10.1.4 列组统计信息更新 361
10.1.5 分布统计信息更新 371
10.1.6 统计信息更新策略 377
10.2 碎片整理 379
10.2.1 碎片产生机制和影响 379
10.2.2 确定何时重组表和索引 380
10.2.3 执行表、索引检查是否需要做REORG 383
10.3 重新绑定程序包 385
10.4 本章小结 386
第11章 SQL语句调优 389
11.1 通过监控找出最消耗资源的SQL语句 389
11.2 通过解释工具分析SQL语句执行计划 390
11.2.1 解释表 391
11.2.2 Visual Explain(可视化解释) 392
11.2.3 db2expln 400
11.2.4 db2exfmt 403
11.2.5 各种解释工具比较 405
11.2.6 如何从解释信息中获取有价值的建议 406
11.3 理解SQL语句如何工作 406
11.3.1 理解谓词类型 406
11.3.2 排序和分组 410
11.3.3 连接方法 412
11.3.4 扫描方式 413
11.4 SQL调优案例 413
11.4.1 用一条语句即可做到时避免使用多条语句 413
11.4.2 合理使用NOTIN和NOT EXISTS 414
11.4.3 合理使用子查询减少数据扫描和利用索引 417
11.4.4 调整表的连接顺序,减小中间结果集的数据量 418
11.4.5 在有偏差数据的情况下使用参数标记时,指定选择性 420
11.4.6 SQL使用UDF代替查询中复杂的部分 420
11.4.7 从多个SQL语句到一个SQL表达式 422
11.4.8 使用SQL一次处理一个集合语义 423
11.4.9 在无副作用的情况下,请使用SQL函数 425
11.4.10 小结 426
11.5 提高应用程序性能 426
11.5.1 良好的SQL编码规则 426
11.5.2 提高SQL编程性能 428
11.5.3 改进游标性能 430
11.5.4 根据业务逻辑选择最低粒度的隔离级别 431
11.5.5 通过REOPT绑定选项来提高性能 431
11.5.6 统计信息、碎片整理和重新绑定 432
11.5.7 避免不必要的排序 433
11.5.8 在C/S环境中利用SQL存储过程降低网络开销 433
11.5.9 高并发环境下使用连接池 433
11.5.10 使用Design Advisor(db2advis)建议索引 434
11.5.11 提高批量删除、插入和更新速度 434
第12章 DB2调优案例、问题总结和技巧 437
12.1 调优案例一:某移动公司存储设计不当和SQL引起的I/O瓶颈 437
12.2 调优案例二:某银行知识库系统锁等待、锁升级引起性能瓶颈 444
12.3 调优案例三:某汽车制造商ERP系统通过调整统计信息提高性能 453
12.4 调优案例四:某农信社批量代收电费批处理慢调优案例 464
12.5 调优学习案例:利用压力测试程序学习DB2调优 468
后记 501
参考文献 503
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《穿越数据的迷宫 数据管理执行指南》Laura Sebastian-Coleman 2020
- 《大数据环境下的信息管理方法技术与服务创新丛书 俄罗斯档案事业改革与发展研究》徐胡乡责编;肖秋会 2019
- 《NiFe2O4基惰性阳极材料的烧结行为及应用性能》杜金晶,王斌著 2019
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019