DB2数据库性能调整和优化(第二版)

节选

[

国内*权威的DB2图书,由业界领军人物牛新庄博士执笔
针对DB2技术的*新发展和上一版的读者反馈,对全书内容和章节安排做了更新,更加贴近实用
 DB2从业人员的**案头书

]

本书特色

[

  本书侧重于介绍db2数据库的性能调优。性能调优是一个系统工程:全面监控分析操作系统、i/o性能、内存、应用及数据库才能快速找到问题根源;深刻理解db2的锁及并发机制、索引原理、数据库参数、优化器原理、sql语句调优等内部机理才能针对性地快速提出解决问题的方法;快照、db2pd、db2expln及事件监控器等则是必须熟练掌握的工具。这本书覆盖了进行db2数据库性能调优所需的全部知识和工具,并提供了大量的性能调优的实际案例。

  本书系统性地总结了db2数据库性能调整的方法、流程、思路和保持系统良好性能的注意要点。*难得的是作者分享了其10年积累的db2性能调优案例和经验总结。
  本书特色
  ◆
本书全面揭示了性能相关的主题,并从基本原理入手,解释造成性能问题的根本原因,并提供*好的解决方法,从而实现db2数据库的调优

  ◆ 本书体现了作者多年调优经验的心得体会,包含了大量的实战技巧,实用性极高

]

内容简介

[

  国内*权威的db2图书,由业界领军人物牛新庄博士执笔
  针对db2技术的*新发展和上一版的读者反馈,对全书内容和章节安排做了更新,更加贴近实用
   db2从业人员的**案头书

]

作者简介

[

  牛新庄,国内顶尖数据架构和信息治理专家,担任对外经济贸易大学客座教授、北京交通大学兼职教授、中国DB2用户协会(CDUG)理事长、亚洲金融合作联盟信息科技委员会主任。2008年曾以217万年薪受聘于中国建设银行总行特聘技术顾问,2009年受邀加入中国民生银行总行科技部,现任总行科技部总经理。

  牛新庄博士拥有20多项国际厂商认证(包括DB2
V5~V9的全部认证),获得过国内数据库领域最高荣誉的“2006年中国首届杰出数据库工程师奖”、“首届IBM杰出软件专家奖”、“2006年IT168技术卓越奖”等奖项。

 

]

目录

第1章  性能调整概述1.1  性能概述1.2  性能评估1.3  建立性能目标1.4  什么时候需要做性能调整1.5  性能调整准则1.6  性能调整的方法和过程1.6.1  性能调整的步骤1.6.2  性能调整的限制1.6.3  向客户了解情况1.6.4  性能调整流程图1.7  性能模型1.7.1  输入1.7.2  处理1.7.3  输出1.8  本章小结第2章  操作系统及存储的性能调优2.1  aix性能监控综述2.1.1  监控工具2.1.2  监控系统总体运行状态2.1.3  监控cpu性能2.1.4  监控内存使用2.1.5  监控存储系统状态2.1.6  监控网络状态2.2  操作系统性能优化2.2.1  直接i/o和并发i/o2.2.2  异步i/o和同步i/o2.2.3  minpout和maxpout2.2.4  文件系统和裸设备2.2.5  负载均衡及条带化(striping)2.3  逻辑卷和lvmo优化2.3.1  使用lvmo进行优化2.3.2  卷组pbuf池2.3.3  pbuf设置不合理导致性能问题调整案例2.3.4  使用ioo进行优化2.4  操作系统性能调整总结2.5  存储i/o设计2.6  存储基本概念2.6.1  硬盘2.6.2  磁盘阵列技术2.6.3  存储的cache2.6.4  网络存储技术2.7  存储架构2.7.1  存储i/o处理过程2.7.2  raid iops2.7.3  raid 10和raid 5的比较2.8  良好存储规划的目标2.9  良好存储规划的设计原则2.10  存储相关性能调整案例2.11  存储i/o性能调整总结2.12  本章小结第3章  db2性能监控3.1  快照监视器案例3.1.1  监控动态sql语句3.1.2  监控临时表空间使用3.2  事件监视器及监控案例3.3  利用表函数监控3.4  性能管理视图及案例3.4.1  监控缓冲池命中率3.4.2  监控package cache大小3.4.3  监控执行成本*高的sql语句3.4.4  监控运行时间*长的sql语句3.4.5  监控sql准备和预编译时间*长的sql语句3.4.6  监控执行次数*多的sql语句3.4.7  监控排序次数*多的sql语句3.4.8  监控锁等待时间3.4.9  监控lock chain3.4.10  监控锁内存的使用3.4.11  监控锁升级、死锁和锁超时3.4.12  监控全表扫描的sql3.4.13  检查页清理器是否足够3.4.14  监控prefecher是否足够3.4.15  监控数据库内存使用3.4.16  监控日志使用情况3.4.17  监控占用日志空间*旧的事务3.4.18  监控存储路径3.4.19  追踪监控历史3.5  db2pd3.5.1  常用db2pd监控选项和示例3.5.2  使用db2pd监控死锁案例3.5.3  db2pd使用问题总结3.6  内存监控3.6.1  db2pd 内存监控3.6.2  db2mtrk 内存监控3.7  本章小结第4章  db2配置参数调整4.1  初识db2配置参数4.2  监控和调优实例级(dbm)配置参数4.2.1  代理程序相关配置参数4.2.2  sheapthres4.2.3  fcm_num_buffers4.2.4  sheapthres_shr4.2.5  intra_parallel4.2.6  mon_heap_sz4.2.7  query_heap_sz4.3  监控和调优数据库级配置参数4.3.1  缓冲池大小4.3.2  日志缓冲区大小(logbufsz)4.3.3  应用程序堆大小(applheapsz)4.3.4  sortheap和sheapthres_shr4.3.5  锁相关配置参数4.3.6  活动应用程序的*大数目(maxappls)4.3.7  pckcachesz4.3.8  catalogcache_sz4.3.9  异步页清除程序的数目(num_iocleaners)4.3.10  异步i/o 服务器的数目(num_ioservers)4.3.11  组提交数目(mincommit)4.3.12  avg_appls4.3.13  chngpgs_thresh(db)4.3.14  maxfilop4.3.15  logprimary、logsecond和logfilsz4.3.16  stmtheap4.3.17  dft_queryopt4.3.18  util_heap_sz (db)4.4  调整db2概要注册变量4.4.1  db2_parallel_io4.4.2  db2_evaluncommitted4.4.3  db2_skipdeleted4.4.4  db2_skipinserted4.4.5  db2_use_page_container_tag4.4.6  db2_selectivity4.4.7  db2_logger_non_buffered_io4.5  内存自动调优4.5.1  内存自动调优示例4.5.2  启用内存自动调优及相关参数4.5.3  内存配置参数的配置原则4.6  本章小结第5章  高级锁与优化5.1  隔离级别与锁5.1.1  可重复读(rr-repeatable read)5.1.2  读稳定性(rs-read stability)5.1.3  游标稳定性(cs-cursor stability)5.1.4  当前提交(currently committed)5.1.5  未提交读(ur-uncommitted read)5.1.6  隔离级别总结5.2  加锁总结5.2.1  如何获取锁5.2.2  意图锁和非意图锁5.2.3  读锁和写锁5.2.4  lrb(lock resource block)5.2.5  use and keep locks5.2.6  索引类型和下一键锁5.2.7  扫描方式与加锁5.3  乐观锁5.3.1  悲观锁和乐观锁5.3.2  db2 v9.5中的乐观锁5.3.3  乐观锁应用案例5.4  内部锁5.4.1  内部方案锁(internal plan lock)5.4.2  内部v锁(internal variation lock)5.4.3  内部s锁5.4.4  内部c锁5.4.5  其他内部锁5.5  锁等待及调整案例5.5.1  锁等待问题解决流程和步骤5.5.2  捕获引起锁等待的sql语句5.5.3  利用db2pd捕获锁超时5.5.4  利用事件监视器捕获锁超时5.6  锁升级及调整案例5.6.1  监控锁升级5.6.2  锁升级调整5.7  死锁及调整案例5.7.1  利用事件监视器监控死锁5.7.2  死锁案例5.7.3  *小化死锁建议5.8  *大化并发性5.8.1  选择合适的隔离级别5.8.2  尽量避免锁等待、锁升级和死锁5.8.3  设置合理的注册表变量5.9  锁相关的性能问题总结5.10  锁与应用程序开发5.11  本章小结第6章  索引设计与优化6.1  索引概念6.1.1  索引优点6.1.2  索引类型6.2  索引结构6.3  理解索引访问机制6.4  索引设计6.4.1  创建索引6.4.2  创建集群索引6.4.3  创建双向索引6.4.4  完全索引访问6.4.5  与创建索引相关的问题6.4.6  创建索引示例6.5  索引创建原则与示例6.5.1  索引与谓词6.5.2  根据查询使用的列建立索引6.5.3  根据条件语句中谓词的选择度创建索引6.5.4  避免在建有索引的列上使用函数6.5.5  在那些需要被排序的列上创建索引6.5.6  合理使用include关键词创建索引6.5.7  指定索引的排序属性6.6  影响索引性能的相关配置6.6.1  设置影响索引性能的配置参数6.6.2  为索引指定不同的表空间6.6.3  确保索引的集群度6.6.4  使表和索引统计信息保持*新6.6.5  重组索引6.7  索引维护6.7.1  异步索引清除(aic)6.7.2  联机索引整理碎片6.7.3  查找使用率低下的索引6.7.4  索引压缩6.8  db2 design advisor(db2advis)6.9  本章小结第7章  db2优化器7.1  db2优化器介绍7.2  sql语句执行过程7.3  优化器组件和工作原理7.3.1  查询重写示例:谓词移动、合并和转换7.3.2  优化器成本评估7.3.3  本地谓词基数(cardinality)估计7.3.4  连接基数(cardinality)估计7.3.5  分布统计信息7.3.6  列组统计信息对基数的影响7.4  扫描方式7.4.1  全表扫描7.4.2  索引扫描7.4.3  rid scan7.5  连接方法7.5.1  嵌套循环连接7.5.2  合并连接7.5.3  哈希连接7.5.4  选择*佳连接的策略7.6  优化级别7.6.1  优化级别概述7.6.2  选择优化级别7.6.3  设置优化级别7.7  基于规则的优化7.7.1  优化器概要文件概述7.7.2  启用优化概要文件7.7.3  优化概要文件使用示例7.8  如何影响优化器来提高性能7.8.1  使db2统计信息保持*新7.8.2  构建适当的索引7.8.3  配置合理的数据库配置参数7.8.4  选择合适的优化级别7.8.5  合理的存储i/o设计7.8.6  良好的应用程序设计和编码7.9  本章小结第8章  统计信息更新与碎片整理8.1  统计信息更新8.1.1  统计信息的重要性8.1.2  统计信息更新示例8.1.3  like statistics统计信息更新8.1.4  列组统计信息更新8.1.5  分布统计信息更新8.1.6  统计信息更新策略8.2  自动统计信息更新8.2.1  自动runstats的基本概念8.2.2  如何打开auto runstats8.2.3  如何监控auto runstats8.2.4  db2 v10新特性–自动收集统计视图的统计信息8.3  碎片整理8.3.1  碎片产生机制和影响8.3.2  确定何时重组表和索引8.3.3  执行表、索引检查是否需要做reorg8.3.4  reorg的用法和使用策略8.4  重新绑定程序包8.5  本章小结第9章  sql语句调优9.1  通过监控找出*消耗资源的sql语句9.2  通过解释工具分析sql语句执行计划9.2.1  解释表9.2.2  visual explain(可视化解释)9.2.3  db2expln9.2.4  db2exfmt9.2.5  各种解释工具的比较9.2.6  如何从解释信息中获取有价值的建议9.3  理解sql语句如何工作9.3.1  理解谓词类型9.3.2  排序和分组9.3.3  连接方法9.3.4  扫描方式9.4  sql调优案例9.4.1  尽量使用单条语句完成逻辑9.4.2  合理使用not in和notexists9.4.3  利用子查询进行优化9.4.4  调整表连接顺序使join*优9.4.5  数据非均匀分布时手工指定选择性9.4.6  使用udf代替查询中的复杂部分9.4.7  合并多条sql语句到单个sql表达式9.4.8  使用sql一次处理一个集合语义9.4.9  在无副作用的情况下使用sql函数9.4.10  小结9.5  提高应用程序性能9.5.1  良好的sql编码规则9.5.2  提高sql编程性能9.5.3  改进游标性能9.5.4  根据业务逻辑选择*低粒度的隔离级别9.5.5  通过reopt绑定选项来提高性能9.5.6  统计信息、碎片整理和重新绑定9.5.7  避免不必要的排序9.5.8  在c/s环境中利用sql存储过程降低网络开销9.5.9  在高并发环境下使用连接池9.5.10  使用design advisor(db2advis)建议索引9.5.11  提高批量删除、插入和更新速度9.5.12  提高插入性能9.5.13  高效的select语句9.6  高性能sql语句注意事项9.6.1  避免在搜索条件中使用复杂的表达式9.6.2  将 optimize for n rows子句与fetch first nrowsonly子句配合使用9.6.3  避免使用冗余的谓词9.6.4  避免使用多个带有distinct关键字的聚集操作9.6.5  避免连接列之间数据类型不匹配9.6.6  避免对表达式使用连接谓词9.6.7  避免在谓词中使用空操作表达式来更改优化器估算9.6.8  确保查询符合星型模式连接的必需条件9.6.9  避免使用非等式连接谓词9.6.10  避免使用不必要的外连接9.6.11  使用参数标记来缩短动态查询的编译时间9.6.12  使用约束来提高查询优化程度9.7  本章小结第10章  db2调优案例、问题总结和技巧10.1  调优案例1:某移动公司存储设计不当和sql引起的i/o瓶颈10.2  调优案例2:某银行知识库系统锁等待、锁升级引起性能瓶颈10.3  调优案例3:某汽车制造商erp系统通过调整统计信息提高性能10.4  调优案例4:某农信社批量代收电费批处理慢调优案例10.5  调优案例5:某银行系统sql执行慢,通过跟踪信息获取调整信息10.6  调优案例6:某银行系统字段类型定义错误导致sql执行时间变长10.7  调优学习案例:利用压力测试程序学习db2调优

封面

DB2数据库性能调整和优化(第二版)

书名:DB2数据库性能调整和优化(第二版)

作者:牛新庄

页数:528

定价:¥78.0

出版社:清华大学出版社

出版日期:2013-07-01

ISBN:9787302325260

PDF电子书大小:86MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注