编辑推荐

袁春光直播《金融企业数据库现状和未来趋势》回放,更多了解《DB2数据库性能调整和优化(第3版)》,观看请点击!

主要特色
◆《DB2数据库性能调整和优化(第3版)》从性能相关的基本原理入手,全面讲解了高性能系统设计、性能监控、调优工具、性能问题分析思路和解决方法。
◆《DB2数据库性能调整和优化(第3版)》体现了作者多年调优经验的心得体会,精选了大量的实战案例,其中包含了近年大型银行系统实际用到的性能技巧,参考价值和实用性极高。
◆涵盖了针对DB2pureScale及GDPC(地理上分离的pureScale集群)的性能调优方法和实践。

内容简介

内容简介
DB2数据库性能调整和优化(第3版)》侧重于介绍DB2数据库的性能调优。性能调优是一个系统工程:全面监控分析操作系统、I/O性能、内存、应用及数据库才能快速找到问题根源;深刻理解DB2的锁及并发机制、索引原理、数据库参数、优化器原理、统计分析和碎片整理等内部机理才能针对性地快速提出解决问题的方法;快照、db2pd、db2expln以及各种管理视图和表函数等则是必须熟练掌握的工具。《DB2数据库性能调整和优化(第3版)》覆盖了进行DB2数据库性能调优所需的全部知识和工具,并提供了大量的性能调优的实际案例,这些案例都基于作者10多年积累的经验和总结,其中包括了近年来大型银行系统实际遇到的案例。《DB2数据库性能调整和优化(第3版)》还首次涵盖了针对DB2pureScale及同城双活GDPC(地理上分离的pureScale集群)的性能调优方法和实践。
DB2数据库性能调整和优化(第3版)》适合有一定DB2数据库基础知识和经验的数据库工程师,以及希望深入、全面地掌握DB2数据库性能分析和调优知识的读者,同时可以成为数据库软件开发人员开发高性能数据库软件的参考书。

作者简介

牛新庄博士,现任中国民生银行信息科技部总经
理,长期致力于银行业信息科技建设和管理工作。
  作为国内*的数据库资深专家,曾先后为建设
银行、中信银行、交通银行、广东农信、青岛海尔等
大型企业提供数据库顾问服务,为各行业的IT人才提
供技术培训,在《程序员》杂志开辟数据库专栏,为
从业者答疑解惑,广泛地推动了国内数据库技术的发
展和信息技术的传播。
  作为国内信息科技领域的领军人物,积极推进移
动互联、分布式、大数据、区块链等新技术领域创新,倾力打造满足业
务飞速发展的信息系统。
  他还任浙江大学、武汉大学、对外经贸大学、北京交通大学等多家
高校和科研机构的兼职教授,并担任银监会信息科技发展与风险管理专
家、中国工程建设标准化协会信息通信专业委员会专家、中国DB2用户
协会CDUG理事长、IBM信息管理客户顾问委员会主席、中央企业网络安
全与信息化服务共享联盟智库首批专家等职务。
  此外,拥有OCP、AIX、DB2、HP-UX、MQ、CICS和WebSphere等二十多
项国际认证,获得过国内数据库领域*高荣誉的“中国首届杰出数据库
工程师”奖、首届IBM杰出软件专家奖、“IT168技术卓越”奖等奖项,
以及“中国杰出CIO”等荣誉称号。

目录

第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.1AIX性能监控综述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.3minpout和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.3pbuf设置不合理导致性能
问题调整案例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.2RAIDIOPS70
2.7.3RAID10和RAID5的比较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监控PackageCache大小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监控LockChain103
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.5db2pd113
3.5.1常用db2pd监控选项和
示例114
3.5.2使用db2pd监控死锁
案例126
3.5.3db2pd使用问题总结132
3.6内存监控133
3.6.1db2pd内存监控133
3.6.2db2mtrk内存监控137
3.7本章小结139
第4章DB2配置参数调整141
4.1初识DB2配置参数141
4.2监控和调优实例级(DBM)
配置参数143
4.2.1代理程序相关配置参数143
4.2.2sheapthres145
4.2.3fcm_num_buffers145
4.2.4sheapthres_shr146
4.2.5intra_parallel146
4.2.6mon_heap_sz147
4.3监控和调优数据库级配置
参数147
4.3.1缓冲池大小147
4.3.2日志缓冲区大小(logbufsz)152
4.3.3应用程序堆大小
(applheapsz)153
4.3.4sortheap和sheapthres_shr154
4.3.5锁相关配置参数157
4.3.6活动应用程序的最大数目
(maxappls)160
4.3.7pckcachesz161
4.3.8catalogcache_sz161
4.3.9异步页清除程序的数目
(num_iocleaners)161
4.3.10异步I/O服务器的数目
(num_ioservers)163
4.3.11avg_appls163
4.3.12chngpgs_thresh(DB)164
4.3.13maxfilop164
4.3.14logprimary、logsecond和
logfilsz164
4.3.15stmtheap165
4.3.16dft_queryopt165
4.3.17util_heap_sz(DB)165
4.4调整DB2概要注册变量166
4.4.1db2_parallel_io166
4.4.2db2_evaluncommitted168
4.4.3db2_skipdeleted168
4.4.4db2_skipinserted168
4.4.5db2_use_page_container_tag168
4.4.6db2_selectivity169
4.4.7db2maxfscrsearch169
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隔离级别(IsolationLevels)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.8DB2DesignAdvisor
(db2advis)256
6.9本章小结260
第7章DB2优化器265
7.1DB2编译器介绍266
7.2SQL语句编译过程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.4LIKESTATISTICS统计信息
更新339
8.1.5列组统计信息更新340
8.1.6分布统计信息更新349
8.1.7统计信息更新策略355
8.2自动统计信息更新357
8.2.1自动RUNSTATS的基本
概念357
8.2.2如何打开autorunstats359
8.2.3如何监控autorunstats361
8.2.4自动收集统计视图的统计
信息362
8.3碎片整理363
8.3.1碎片产生机制和影响363
8.3.2确定何时重组表和索引364
8.3.3执行表、索引检查是否需要
做REORG367
8.3.4REORG的用法和使用
策略368
8.4重新绑定程序包371
8.5本章小结373

前言/序言

自1999年左右我开始从事数据库有关的技术工作到现在已近20年时间,此期间信息科技飞速发展,从无纸化办公和数据大集中到移动互联和大数据、人工智能、云计算等信息技术改变了生活,并颠覆了传统商业模式。信息科技的发展离不开数据处理技术的进步,在这一轮信息化浪潮中,数据处理技术也发生了翻天覆地的变化,对企业经营发展和对外服务的意义越来越重要。一方面,传统企业级数据库的能力,在原有的道路和方向上不断地持续提升演进,以满足企业市场不断迸发的各类需求。另一方面,互联网场景孕育的各种新兴的数据处理技术亦不断涌现,例如NewSQL、NoSQL、Hadoop等大数据处理技术,这些技术成为传统数据库产品的必然补充,同时也对传统数据库产品产生了一定的冲击。但是以我长期从事企业数据处理相关工作的经验看,在企业级市场尤其是金融企业市场里面,传统数据库产品的能力依然是解决企业主要业务需求的不二选择。因此,传统数据库技术的研究和应用仍然是信息科技工作的重点。
近年来传统数据库产品在不断改进升级,以支持更快的处理能力和更高的可用性,满足不同场景下的用户需求。DB2作为一款主流数据库产品,在这些方面也都进步明显,例如Purescale集群技术、跨数据中心的GDPC技术、列存储的BLU技术等创新功能就表现不俗,满足了特定业务场景需求,给企业带来了很大的价值提升。特别是GDPC技术,帮助企业搭建关键业务系统同城对等全双活生产架构,为最终用户提供高等级容灾的连续服务,对企业对外服务的提升意义非凡,也使数据库从业者们领略了DB2产品创新的精华。
基于DB2产品的演进以及近些年的思考和实践,我重新梳理了之前编写的第2版的3本DB2系列技术图书,对其进行了大篇幅的修改和重写,力图对近些年实践的精华和DB2产品的新趋势进行总结。在此奉献给各位数据库从业的同仁,在技术的路上共勉。
由于本人水平有限,时间有限,书中不免有这样或者那样的错误,希望广大读者朋友不吝赐教指正!
最后,感谢我的家人和同事在《DB2数据库性能调整和优化(第3版)》重写过程中的帮助,谢谢你们!

牛新庄



其他推荐