图书介绍
DB2数据库性能调整和优化 第3版PDF|Epub|txt|kindle电子书版本网盘下载
- 牛新庄著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302481188
- 出版时间:2017
- 标注页数:522页
- 文件大小:69MB
- 文件页数:537页
- 主题词:关系数据库系统
PDF下载
下载说明
DB2数据库性能调整和优化 第3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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
1.7.1 输入17
1.7.2 处理17
1.7.3 输出23
1.8 本章小结24
第2章 操作系统及存储的性能调优27
2.1 AIX性能监控综述29
2.1.1 监控工具29
2.1.2 监控系统总体运行状态30
2.1.3 监控CPU性能34
2.1.4 监控内存使用38
2.1.5 监控存储系统状态40
2.1.6 监控网络状态42
2.2 操作系统性能优化43
2.2.1 直接I/O和并发I/O44
2.2.2 异步I/O和同步I/O45
2.2.3 minpout和maxpout47
2.2.4 文件系统和裸设备47
2.2.5 负载均衡及条带化(Striping)48
2.3 逻辑卷和lvmo优化53
2.3.1 使用lvmo进行优化54
2.3.2 卷组pbuf池55
2.3.3 pbuf设置不合理导致性能问题调整案例56
2.3.4 使用ioo进行优化59
2.4 操作系统性能调整总结64
2.5 存储I/O设计65
2.6 存储基本概念65
2.6.1 硬盘65
2.6.2 磁盘阵列技术67
2.6.3 存储的Cache67
2.6.4 网络存储技术68
2.7 存储架构69
2.7.1 存储I/O处理过程69
2.7.2 RAID IOPS70
2.7.3 RAID 10和RAID 5的比较71
2.8 良好存储规划的目标74
2.9 良好存储规划的设计原则75
2.10 存储相关性能调整案例76
2.11 存储I/O性能调整总结79
2.12 本章小结80
第3章 DB2性能监控81
3.1 快照监视器案例81
3.1.1 监控动态SQL语句81
3.1.2 监控临时表空间使用84
3.2 事件监视器及监控案例87
3.3 利用表函数监控93
3.4 性能管理视图及案例97
3.4.1 监控缓冲池命中率99
3.4.2 监控Package Cache大小100
3.4.3 监控执行成本最高的SQL语句100
3.4.4 监控运行时间最长的SQL语句101
3.4.5 监控SQL准备和预编译时间最长的SQL语句101
3.4.6 监控执行次数最多的SQL语句102
3.4.7 监控排序次数最多的SQL语句103
3.4.8 监控锁等待时间103
3.4.9 监控Lock Chain103
3.4.10 监控锁内存的使用106
3.4.11 监控锁升级、死锁和锁超时107
3.4.12 监控全表扫描的SQL108
3.4.13 检查页清理器是否足够108
3.4.14 监控prefecher是否足够109
3.4.15 监控数据库内存使用110
3.4.16 监控日志使用情况111
3.4.17 监控占用日志空间最旧的事务111
3.4.18 监控存储路径112
3.4.19 追踪监控历史113
3.5 db2pd113
3.5.1 常用db2pd监控选项和示例114
3.5.2 使用db2pd监控死锁案例126
3.5.3 db2pd使用问题总结132
3.6 内存监控133
3.6.1 db2pd内存监控133
3.6.2 db2mtrk内存监控137
3.7 本章小结139
第4章 DB2配置参数调整141
4.1 初识DB2配置参数141
4.2 监控和调优实例级(DBM)配置参数143
4.2.1 代理程序相关配置参数143
4.2.2 sheapthres145
4.2.3 fcm_num_buffers145
4.2.4 sheapthres_shr146
4.2.5 intra_parallel146
4.2.6 mon_heap_sz147
4.3 监控和调优数据库级配置参数147
4.3.1 缓冲池大小147
4.3.2 日志缓冲区大小(logbufsz)152
4.3.3 应用程序堆大小(applheapsz)153
4.3.4 sortheap和sheapthres_shr154
4.3.5 锁相关配置参数157
4.3.6 活动应用程序的最大数目(maxappls)160
4.3.7 pckcachesz161
4.3.8 catalogcache_sz161
4.3.9 异步页清除程序的数目(num_iocleaners)161
4.3.10异步I/O服务器的数目(num_ioservers)163
4.3.11 avg_appls163
4.3.12 chngpgs_thresh(DB)164
4.3.13 maxfilop164
4.3.14 logprimary、logsecond和logfilsz164
4.3.15 stmtheap165
4.3.16 dft_queryopt165
4.3.17 util_heap_sz(DB)165
4.4 调整DB2概要注册变量166
4.4.1 db2_parallel_io166
4.4.2 db2_evaluncommitted168
4.4.3 db2_skipdeleted168
4.4.4 db2_skipinserted168
4.4.5 db2_use_page_container_tag168
4.4.6 db2_selectivity169
4.4.7 db2maxfscrsearch169
4.5 内存自动调优169
4.5.1 内存自动调优示例170
4.5.2 启用内存自动调优及相关参数171
4.5.3 内存配置参数的配置原则173
4.6 本章小结174
第5章 锁和并发175
5.1 锁的概念176
5.1.1 数据一致性176
5.1.2 事务和事务边界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 可重复读(RR—Repeatable Read)189
5.3.2 读稳定性(RS—Read Stability)191
5.3.3 游标稳定性(CS—Cursor Stability)192
5.3.4 当前已提交(Currently Committed)194
5.3.5 未提交读(UR—Uncommitted Read)194
5.3.6 隔离级别的摘要196
5.4 锁转换、锁等待、锁升级和死锁198
5.4.1 锁转换及调整案例198
5.4.2 锁升级及调整案例200
5.4.3 锁等待及调整案例203
5.4.4 死锁及调整案例205
5.5 锁相关的性能问题总结209
5.6 锁与应用程序设计211
5.7 锁监控工具214
5.8 最大化并发性218
5.8.1 选择合适的隔离级别218
5.8.2 尽量避免锁等待、锁升级和死锁218
5.8.3 设置合理的注册变量218
5.9 本章小结227
第6章 索引设计与优化229
6.1 索引概念229
6.1.1 索引优点229
6.1.2 索引类型231
6.2 索引结构231
6.3 理解索引访问机制234
6.4 索引设计237
6.4.1 创建索引237
6.4.2 创建集群索引238
6.4.3 创建双向索引239
6.4.4 完全索引访问240
6.4.5 与创建索引相关的问题241
6.4.6 创建索引示例241
6.5 索引创建原则与示例242
6.5.1 索引与谓词242
6.5.2 根据查询使用的列建立索引244
6.5.3 根据条件语句中谓词的选择度创建索引245
6.5.4 避免在建有索引的列上使用函数246
6.5.5 在那些需要被排序的列上创建索引246
6.5.6 合理使用INCLUDE关键词创建索引248
6.5.7 指定索引的排序属性249
6.6 影响索引性能的相关配置250
6.6.1 设置影响索引性能的配置参数250
6.6.2 为索引指定不同的表空间250
6.6.3 确保索引的集群度251
6.6.4 使表和索引统计信息保持最新251
6.7 索引维护251
6.7.1 异步索引清除(AIC)252
6.7.2 联机索引整理碎片254
6.7.3 查找使用率低下的索引254
6.7.4 索引压缩256
6.8 DB2 Design Advisor(db2advis)256
6.9 本章小结260
第7章 DB2优化器265
7.1 DB2编译器介绍266
7.2 SQL语句编译过程268
7.3 优化器组件和工作原理271
7.3.1 查询重写示例:谓词移动、合并和转换271
7.3.2 优化器成本评估276
7.3.3 本地谓词基数(cardinality)估计277
7.3.4 连接基数(cardinality)估计279
7.3.5 分布统计信息283
7.3.6 列组统计信息对基数的影响287
7.4 数据访问方式297
7.4.1 全表扫描297
7.4.2 索引扫描298
7.4.3 扫描共享301
7.5 连接方法302
7.5.1 嵌套循环连接303
7.5.2 合并连接305
7.5.3 哈希连接306
7.5.4 选择最佳连接的策略307
7.6 优化级别307
7.6.1 优化级别概述308
7.6.2 选择优化级别311
7.6.3 设置优化级别312
7.7 基于规则的优化314
7.7.1 优化器概要文件概述314
7.7.2 启用优化概要文件316
7.7.3 优化概要文件使用示例317
7.8 如何影响优化器来提高性能324
7.8.1 使DB2统计信息保持最新324
7.8.2 构建适当的索引324
7.8.3 配置合理的数据库配置参数325
7.8.4 选择合适的优化级别326
7.8.5 合理的存储I/O设计326
7.8.6 良好的应用程序设计和编码327
7.9 本章小结329
第8章 统计信息更新与碎片整理331
8.1 统计信息更新332
8.1.1 统计信息的重要性332
8.1.2 如何更新统计信息333
8.1.3 统计信息更新示例335
8.1.4 LIKE STATISTICS统计信息更新339
8.1.5 列组统计信息更新340
8.1.6 分布统计信息更新349
8.1.7 统计信息更新策略355
8.2 自动统计信息更新357
8.2.1 自动RUNSTATS的基本概念357
8.2.2 如何打开auto runstats359
8.2.3 如何监控auto runstats361
8.2.4 自动收集统计视图的统计信息362
8.3 碎片整理363
8.3.1 碎片产生机制和影响363
8.3.2 确定何时重组表和索引364
8.3.3 执行表、索引检查是否需要做REORG367
8.3.4 REORG的用法和使用策略368
8.4 重新绑定程序包371
8.5 本章小结373
第9章 SQL语句调优375
9.1 通过监控找出最消耗资源的SQL语句376
9.2 通过解释工具分析SQL语句执行计划376
9.2.1 解释表377
9.2.2 db2expln378
9.2.3 db2exfmt380
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调优案例390
9.4.1 尽量使用单条语句完成逻辑390
9.4.2 合理使用NOT IN和NOT EXISTS391
9.4.3 利用子查询进行优化392
9.4.4 调整表连接顺序使JOIN最优394
9.4.5 数据非均匀分布时手工指定选择性395
9.4.6 使用UDF代替查询中的复杂部分396
9.4.7 合并多条SQL语句到单个SQL表达式397
9.4.8 使用SQL一次处理一个集合语义398
9.4.9 在无副作用的情况下使用SQL函数400
9.4.10 小结401
9.5 提高应用程序性能401
9.5.1 良好的SQL编码规则401
9.5.2 提高SQL编程性能403
9.5.3 改进游标性能405
9.5.4 根据业务逻辑选择最低粒度的隔离级别406
9.5.5 通过REOPT绑定选项来提高性能406
9.5.6 统计信息、碎片整理和重新绑定407
9.5.7 避免不必要的排序408
9.5.8 在C/S环境中利用SQL存储过程降低网络开销408
9.5.9 在高并发环境下使用连接池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 避免在搜索条件中使用复杂的表达式412
9.6.2 将 OPTIMIZE FOR n ROWS子句与FETCH FIRST n ROWS ONLY子句配合使用412
9.6.3 避免使用冗余的谓词412
9.6.4 避免使用多个带有DISTINCT关键字的聚集操作413
9.6.5 避免连接列之间数据类型不匹配414
9.6.6 避免对表达式使用连接谓词414
9.6.7 避免在谓词中使用空操作表达式来更改优化器估算415
9.6.8 确保查询符合星型模式连接的必需条件415
9.6.9 避免使用非等式连接谓词416
9.6.10 避免使用不必要的外连接417
9.6.11 使用参数标记来缩短动态查询的编译时间418
9.6.12 使用约束来提高查询优化程度418
9.7 本章小结419
第10章 DB2集群调优421
10.1 DB2集群介绍421
10.2 DB2集群参数解析423
10.2.1 组缓冲池423
10.2.2 全局锁管理器425
10.2.3 DB2 pureScale集群相关参数425
10.3 DB2集群性能监控429
10.3.1 查看CF资源利用429
10.3.2 查看各个成员的负载情况430
10.3.3 查看缓冲池命中率430
10.3.4 查看全局锁性能438
10.3.5 查看页回收(Page Reclaiming)行为441
10.4 DB2集群设计调优442
10.4.1 使用小的pagesize442
10.4.2 使用大的extentsize442
10.4.3 使用LOB inline方法442
10.4.4 使用大的pctfree设置443
10.4.5 巧用CURRENT MEMBER443
10.4.6 巧用随机索引444
10.5 同城双活集群介绍444
10.6 同城双活集群调优446
10.6.1 减少存储影响446
10.6.2 减少通信影响447
10.6.3 热点表调优案例447
10.7 本章小结450
第11章 DB2调优案例、问题总结和技巧451
11.1 调优案例1:某移动公司存储设计不当和SQL引起的I/O瓶颈451
11.2 调优案例2:某银行知识库系统锁等待、锁升级引起性能瓶颈458
11.3 调优案例3:某汽车制造商ERP系统通过调整统计信息提高性能466
11.4 调优案例4:某农信社批量代收电费批处理慢调优案例476
11.5 调优案例5:某银行系统字段类型定义错误导致SQL执行时间变长480
11.6 调优案例6:某银行客户回单系统CPU使用率高483
11.7 调优案例7:某银行手机银行系统latch竞争导致active session高、性能慢问题488
11.8 调优学习案例:利用压力测试程序学习DB2调优492