分享
 
 
 

DB2数据库性能调整和优化

DB2数据库性能调整和优化  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机/网络,数据库,数据库理论,

作者: 牛新庄著

出 版 社: 清华大学出版社

出版时间: 2009-5-1字数:版次: 1页数: 499印刷时间:开本: 16开印次:纸张:I S B N : 9787302199533包装: 平装编辑推荐

从全局的角度(操作系统、存储、数据库设计和应用SQL)来讲解如何调优。

 本书将基本概念、深入研究、性能监控、调整案例等相关内容,按照每章一条主线展开,从而使读者通过每章的阅读,能够对相关知识有一个纵向的深入认知。

 本书性能问题基本上涵盖了实际工作中90%的性能问题,具有重大参考价值。

 本书是作者10年积累的DB2性能调优案例和经验的总结。

内容简介

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

本书系统性地总结了DB2数据库性能调整的方法、流程、思路和保持系统良好性能的注意要点。最难得的是作者分享了10年积累的DB2性能调优案例和经验总结。

目录

第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 性能调整总结

第2章 存储I/O设计

2.1 存储基本概念

2.1.1 硬盘

2.1.2 磁盘阵列技术

2.1.3 存储的Cache

2.1.4 IOPS

2.1.5 网络存储技术

2.2 存储架构

2.2.1 存储I/O处理过程

2.2.2 应用系统I/O流动图

2.2.3 RAID IOPS

2.2.4 RAID 和RAID 的比较

2.3 存储相关性能调整案例

2.4 存储I/O设计总结

第3章 操作系统相关性能问题

3.1 HP-UX系统性能监控综述

3.1.1 监控资源对象和标准

3.1.2 监控工具

3.1.3 监控系统总体运行状态

3.1.4 性能状态的判定流程和监控命令

3.2 AIX性能监控综述

3.2.1 监控工具

3.2.2 监控系统总体运行状态

3.2.3 监控CPU性能

3.2.4 监控内存使用

3.2.5 监控存储系统状态

3.2.6 监控网络状态

3.3 操作系统性能优化

3.3.1 直接I/O和并发I/O

3.3.2 异步I/O和同步I/O

3.3.3 minpout和maxpout

3.3.4 文件系统和裸设备

3.3.5 负载均衡及条带化(Striping)

3.4 逻辑卷和lvmo优化

3.4.1 使用lvmo进行优化

3.4.2 卷组 pbuf 池

3.4.3 pbuf设置不合理导致性能问题调整案例

3.4.4 使用 ioo 进行优化

3.5 总结

第4章 数据库物理设计和逻辑设计

4.1 数据库物理设计

4.1.1 表空间容器放置原则

4.1.2 数据库物理设计原则

4.2 数据库逻辑设计

4.2.1 缓冲池设计原则

4.2.2 表空间设计原则

4.3 使用Autoconfig设计数据库

4.4 其他高级设计技术

4.4.1 表分区及应用案例

4.4.2 数据库分区及应用案例

4.4.3 多维群集(MDC)及应用案例

4.4.4 物化查询表及应用案例

4.4.5 MDC、数据库分区、MQT和表分区配合使用

4.4.6 表压缩及应用案例

4.4.7 表压缩应用案例二

4.4.8 XML及应用案例

4.5 数据库设计总结

4.5.1 表空间与表设计方面的考虑

4.5.2 索引设计方面的考虑

4.5.3 缓冲池方面的考虑

4.5.4 总结

第5章 DB2性能监控

5.1 快照监视器案例

5.1.1 监控动态SQL语句

5.1.2 监控临时表空间使用

5.2 事件监视器及监控案例

5.3 利用表函数监控

5.4 性能管理视图及案例

5.4.1 监控缓冲池命中率

5.4.2 监控Package Cache大小

5.4.3 监控执行成本最高的SQL语句

5.4.4 监控运行最长的SQL语句

5.4.5 监控SQL准备和预编译时间最长的SQL语句

5.4.6 监控执行次数最多的SQL语句

5.4.7 监控排序次数最多的SQL语句

5.4.8 监控LOCK WAIT等待时间

5.4.9 监控LOCK CHAIN

5.4.10 监控锁内存使用

5.4.11 监控锁升级、死锁和锁超时

5.4.12 监控全表扫描的SQL

5.4.13 检查page cleaners是否足够

5.4.14 监控prefecher是否足够

5.4.15 监控数据库内存使用

5.4.16 监控日志使用情况

5.4.17 监控占用日志空间最旧的交易

5.4.18 用SQL监控健康指示器

5.4.19 监控存储路径

5.4.20 追踪监控历史

5.5 db2pd

5.5.1 常用db2pd监控选项和示例

5.5.2 使用db2pd监控死锁案例

5.5.3 db2pd使用问题总结

5.6 db2mtrk及监控案例

5.7 本章小结

第6章 数据库配置参数调整

6.1 数据库配置参数

6.2 监控和调优实例(DBM)配置参数

6.2.1 代理程序相关配置参数

6.2.2 SHEAPTHRES

6.2.3 FCM_NUM_BUFFERS

6.2.4 SHEAPTHRES_SHR

6.2.5 INTRA_PARALLEL

6.2.6 MON_HEAP_SZ

6.2.7 QUERY_HEAP_SZ

6.3 监控和调优DB配置参数

6.3.1 缓冲池大小

6.3.2 日志缓冲区大小(LOGBUFSZ)

6.3.3 应用程序堆大小(APPHEAPSZ)

6.3.4 SORTHEAP和SHEAPTHRES

6.3.5 锁相关配置参数

6.3.6 活动应用程序的最大数目(MAXAPPLS)

6.3.7 PKGCACHESZ

6.3.8 CATALOGCACHE_SZ

6.3.9 异步页清除程序的数目(NUM_IOCLEANERS)

6.3.10 异步I/O 服务器的数目(NUM_IOSERVERS)

6.3.11 组提交数目(MINCOMMIT)

6.3.12 AVG_APPLS

6.3.13 CHNGPGS_THRESH(DB)

6.3.14 MAXFILOP

6.3.15 LOGPRIMARY、LOGSECOND和LOGFILSZ

6.3.16 STMTHEAP

6.3.17 DFT_QUERYOPT

6.3.18 UTIL_HEAP_SZ (DB)

6.4 调整DB2概要注册变量

6.4.1 DB2_PARALLEL_IO

6.4.2 DB2_EVALUNCOMMITTED

6.4.3 DB2_SKIPDELETED

6.4.4 DB2_SKIPINSERTED

6.4.5 DB2_USE_PAGE_CONTAINER_TAG

6.4.6 DB2_SELECTIVITY

6.5 内存自动调优

6.5.1 内存自动调优示例

6.5.2 启用内存自动调优及相关参数

6.6 总结

第7章 锁和并发

7.1 锁等待及调整案例

7.1.1 锁等待问题解决流程和步骤

7.1.2 捕获引起锁等待的SQL

7.1.3 利用db2pd捕获锁超时

7.2 锁升级及调整案例

7.2.1 监控锁升级

7.2.2 锁升级调整

7.3 死锁及调整案例

7.3.1 利用事件监视器监控死锁

7.3.2 死锁案例

7.3.3 最小化死锁建议

7.4 隔离级别与锁

7.4.1 可重复读(RR—Repeatable Read)

7.4.2 读稳定性(RS—Read Stability)

7.4.3 游标稳定性(CS—Cursor Stability)

7.4.4 未提交读(UR—Uncommitted Read)

7.4.5 隔离级别加锁总结

7.4.6 隔离级别总结

7.5 最大化并发性

7.5.1 选择合适的隔离级别

7.5.2 尽量避免锁等待、锁升级和死锁

7.5.3 设置合理的注册变量

7.6 锁相关的性能问题总结

7.7 锁与应用程序开发

7.8 本章小结

第8章 索引设计与优化

8.1 索引概念

8.1.1 索引优点

8.1.2 索引类型

8.2 索引结构

8.3 理解索引访问机制

8.4 索引设计

8.4.1 创建索引

8.4.2 创建集群索引

8.4.3 创建双向索引

8.4.4 完全索引访问(index access only)

8.4.5 与创建索引相关的问题

8.4.6 创建索引示例

8.5 索引创建原则与示例

8.5.1 索引与谓词

8.5.2 根据查询所使用的列建立索引

8.5.3 根据条件语句中谓词的选择度创建索引

8.5.4 避免在建有索引的列上使用函数

8.5.5 在那些需要被排序的列上创建索引

8.5.6 合理使用INCLUDE关键词创建索引

8.5.7 指定索引的排序属性

8.6 影响索引性能的相关配置

8.6.1 设置影响索引性能的配置参数

8.6.2 为索引指定不同的表空间

8.6.3 确保索引的集群度

8.6.4 使表和索引统计信息保持最新

8.6.5 重组索引

8.7 索引维护

8.7.1 异步索引清除(AIC)

8.7.2 联机索引整理碎片

8.8 DB2 Design Advisor(db2advis)

8.9 索引调整总结

8.9.1 索引设计总结

8.9.2 索引性能总结

第9章 DB2优化器

9.1 DB2优化器介绍

9.2 SQL语句执行过程

9.3 优化器组件和工作原理

9.3.1 查询重写方法和示例:谓词移动、合并和转换

9.3.2 查询重写示例:视图合并

9.3.3 查询器重写示例:消除DISTINCT

9.3.4 查询器重写示例:隐含谓词

9.4 扫描方式

9.4.1 全表扫描

9.4.2 索引扫描

9.5 连接方法

9.5.1 嵌套循环连接

9.5.2 合并连接

9.5.3 哈希(hash)连接

9.5.4 选择最佳连接的策略

9.6 优化级别

9.7 如何影响优化器来提高性能

9.7.1 使DB2统计信息保持最新

9.7.2 构建适当的索引

9.7.3 配置合理的数据库配置参数

9.7.4 选择合适的优化级别

9.7.5 合理的存储I/O设计

9.7.6 良好的应用程序设计和编码

9.8 优化器总结

第10章 统计信息更新与碎片整理

10.1 统计信息更新

10.1.1 统计信息的重要性

10.1.2 统计信息更新示例

10.1.3 LIKE STATISTICS统计信息更新

10.1.4 列组统计信息更新

10.1.5 分布统计信息更新

10.1.6 统计信息更新策略

10.2 碎片整理

10.2.1 碎片产生机制和影响

10.2.2 确定何时重组表和索引

10.2.3 执行表、索引检查是否需要做REORG

10.3 重新绑定程序包

10.4 本章小结

第11章 SQL语句调优

11.1 通过监控找出最消耗资源的SQL语句

11.2 通过解释工具分析SQL语句执行计划

11.2.1 解释表

11.2.2 Visual Explain(可视化解释)

11.2.3 db2expln

11.2.4 db2exfmt

11.2.5 各种解释工具比较

11.2.6 如何从解释信息中获取有价值的建议

11.3 理解SQL语句如何工作

11.3.1 理解谓词类型

11.3.2 排序和分组

11.3.3 连接方法

11.3.4 扫描方式

11.4 SQL调优案例

11.4.1 用一条语句即可做到时避免使用多条语句

11.4.2 合理使用NOT IN和NOT EXISTS

11.4.3 合理使用子查询减少数据扫描和利用索引

11.4.4 调整表的连接顺序,减小中间结果集的数据量

11.4.5 在有偏差数据的情况下使用参数标记时,指定选择性

11.4.6 SQL使用UDF代替查询中复杂的部分

11.4.7 从多个SQL语句到一个 SQL表达式

11.4.8 使用SQL一次处理一个集合语义

11.4.9 在无副作用的情况下,请使用SQL 函数

11.4.10 小结

11.5 提高应用程序性能

11.5.1 良好的SQL编码规则

11.5.2 提高SQL编程性能

11.5.3 改进游标性能

11.5.4 根据业务逻辑选择最低粒度的隔离级别

11.5.5 通过REOPT绑定选项来提高性能

11.5.6 统计信息、碎片整理和重新绑定

11.5.7 避免不必要的排序

11.5.8 在C/S环境中利用SQL存储过程降低网络开销

11.5.9 高并发环境下使用连接池

11.5.10 使用Design Advisor(db2advis)建议索引

11.5.11 提高批量删除、插入和更新速度

第12章 DB2调优案例、问题总结和技巧

12.1 调优案例一:某移动公司存储设计不当和SQL引起的I/O瓶颈

12.2 调优案例二:某银行知识库系统锁等待、锁升级引起性能瓶颈

12.3 调优案例三:某汽车制造商ERP系统通过调整统计信息提高性能

12.4 调优案例四:某农信社批量代收电费批处理慢调优案例

12.5 调优学习案例:利用压力测试程序学习DB2调优

后记

参考文献

书摘插图

第2章 存储I/O设计

对于任何程序的运行来说,最慢、最花费时间的操作实际上是从磁盘中检索数据。这主要缘于磁盘I/O访问中存在的物理机械过程(磁头旋转和寻道)。尽管磁盘存储技术在最近几年取得了极大的进步,但磁盘的旋转速度却没有太大的提高。您必须清楚这样一个事实:在一定条件下,RAM访问仅需要大概540个CPU时钟周期,而磁盘访问则需要花费大概20 000 000个CPU时钟周期。很明显,系统中访问数据最薄弱的环节就是磁盘l/O存储系统,从性能调整的角度来说,就是确保磁盘数据布局不会成为更严重的瓶颈。糟糕的数据布局将会给I/O性能带来更大的影响。在对系统进行任何优化活动之前,首先应该了解您的存储I/O系统的物理体系结构,因为如果您所设计的存储I/O系统非常糟糕,并且其中包含慢速磁盘,或者适配器的使用非常低效,那么其他的任何优化工作都无法提供帮助。

数据库的作用就是实现对数据的管理和查询。任何一个数据库系统,必然存在对数据的大量读、写操作。所以I/O问题也往往是导致数据库性能问题的重要原因。要控制好数据库的整体I/O性能,在规划数据库架构时就需要做好存储I/O系统的设计和配置。例如,将对I/O要求不同的文件放置在不同的存储设备上;规划表空间容器的分布、均衡I/O负担、使用并行I/O访问等。在一个应用系统的逻辑部署和物理部署图中,存储和操作系统位于应用系统体系结构的最底层。而数据库是部署在操作系统和存储层之上的,所以我们在做数据库的物理设计和逻辑设计之前,必须先做好存储I/O设计。存储I/O设计中最大的一个原则就是将I/O访问的分布最大限度地平衡在所有可以利用的物理设备上。

……

DB2数据库性能调整和优化

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有