内容简介
第1章 性能优化方法学
1.1什么是性能问题
1.1.1如何发现性能问题
1.1.2衡量性能的关键指标
1.1.3性能基准测试
1.1.4制定优化目标
1.2性能优化方法学
1.2.1几种常见误区
1.2.2自上而下(From Top To Down)方法学
1.2.3自下而上(From Down To Top)方法学
1.2.4自上而下和自下而上,如何选择?
1.3高质量数据库设计
1.3.1充分了解需求
1.3.2设计概念模型
1.3.3设计逻辑结构
1.3.4设计物理结构
1.3.5应用开发阶段
1.3.6运行维护阶段
1.4性能调整与优化
1.4.1磁盘瓶颈
1.4.2 CPU瓶颈
1.4.3内存瓶颈
1.4.4网络瓶颈
1.4.5懒惰系统
1.4.6关键SQL语句优化
1.5性能优化基本准则
1.6小结
第2章 实战案例研究与分享
2.1性能问题的提出
2.1.1系统现状:从Oracle RAC谈起
2.1.2性能优化解决方案:“分库”架构
2.1.3高可用解决方案:DB2 HADR
2.2实施:经营分析库
2.2.1 DB2数据库安装
2.2.2操作系统参数配置
2.2.3实例创建与配置
2.2.4存储规划与文件系统创建
2.2.5数据库创建
2.2.6 DB2参数配置
2.3实施:DB2 HADR
2.3.1准备工作
2.3.2复制数据库
2.3.3配记置HADR
2.3.4启动主从数据库
2.3.5 HADR切换演练
2.3.6为JAVA应用配置ACR
2.4性能分析
2.4.1业务分析
2.4.2系统分析
2.4.3优化方法学与计划
2.5性能优化
2.5.1全局调整和优化
2.5.2人力资源模块优化
2.5.3查询分析模块优化
2.5.4报表应用优化
2.5.5性能优化总结
2.6小结
第3章 高质量物理设计
3.1从数据库硬件选型谈起
3.1.1对主机的考虑
3.1.2对存储的考虑
3.1.3对网络环境的考虑
3.1.4电信公司选型结果
3.2存储设计
3.2.1磁盘与磁盘阵列技术
3.2.2条带化
3.2.3存储设计
3.2.4为电信公司规划存储
3.2.5为电信公司创建数据库
3.3表空间设计
3.3.1表空间管理方式
3.3.2表空间类型
3.3.3表空间参数设置
3.3.4为电信公司设计表空间
3.4内存的设置管理
3.4.1解密 DB2内存
3.4.2缓冲池设计
3.4.3缓冲池命中率
3.4.4 STMM自动管理内存
3.4.5为电信公司设计缓冲池
3.5高质量物理设计最佳实践
3.5.1硬件配置
3.5.2存储的设计配置
3.5.3数据库参数初始化选择
3.5.4内存设置管理
3.5.5表空间设计管理
3.6小结
第4章 经典逻辑设计
4.1数据库设计不仅是一种艺术
4.1.1业务需求
4.1.2性能需求
4.2常规表设计体现真功夫
4.2.1规范化决定成败
4.2.2用户与模式
4.2.3字段与类型
4.2.4建表的讲究
4.2.5键与约束
4.2.6序列、标识列和生成列
4.2.7处理大对象的智慧
4.3扑朔迷离的临时表
4.3.1声明全局临时表(DGTT)
4.3.2创建全局临时表(CGTT)
4.3.3临时表小结
4.4无处不在的时态表
4.4.1无处不在的时间
4.4.2系统时态表
4.4.3应用时态表
4.4.4双时态表
4.4.5将普通表转换为时态表
4.5索引设计是一招鲜,吃遍天
4.5.1 DB2索引长什么样
4.5.2为了性能设计索引
4.5.3吃透组合索引
4.5.4创建索引
4.5.5索引的常见误区
4.6触发器设计一瞥
4.7小结
第5章 高级逻辑设计
5.1如何处理TB级的数据
5.1.1方法学指导
5.1.2合理运用高级设计技术
5.2 DB2 DPF设计
5.2.1 DB2 DPF技术内幕
5.2.2 DB2 DPF设计最佳实践
5.3表分区设计
5.3.1表分区技术内幕
5.3.2全局索引vs分区索引
5.3.3转入转出
5.3.4分区排除技术
5.3.5分区维护
5.3.6 V10新特性:多温度存储
5.4 MDC表设计
5.4.1 MDC技术内幕
5.4.2 MDC表设计最佳实践
5.4.3案例:“吃磁盘”的MDC表
5.5分区技术对比:DB2 vs Oracle
5.6 MQT设计
5.6.1 MQT的能力
5.6.2创建MQT必须掌握的要点
5.6.3深入讨论MQT的刷新机制
5.6.4 MQT设计最佳实践
5.7强大的数据压缩
5.7.1行压缩深度剖析
5.7.2 V 10新特性:自适应压缩
5.7.3数据压缩实践与探索
5.8小结
第6章 系统监控
6.1由一则新闻想到的
6.2操作系统监控
6.2.1 CPU监控
6.2.2 I/O监控
6.2.3内存监控
6.2.4网络监控
6.3数据库监控
6.3.1快照监视器
6.3.2事件监视器
6.3.3监视器表函数
6.3.4管理视图
6.3.5 db2pd
6.3.6 db2top
6.4关键SQL语句监控
6.4.1监控最耗费用户CPU时间的动态SQL
6.4.2监控访问热点对象执行次数最多的SQL
6.4.3监控运行时间最长的SQL
6.4.4监控执行次数最多的SQL
6.4.5监控排序次数最多的SQL
6.5关键性能指标(KPI)
6.5.1缓冲区命中率
6.5.2包缓冲区命中率
6.5.3编目缓冲区命中率
6.5.4缓冲区读写平均响应时间
6.5.5日志写入速度
6.5.6锁升级及死锁
6.5.7排序溢出率
6.5.8数据、索引页异步清除比例
6.5.9脏页偷取次数
6.6融会贯通——监控的最佳实践
6.6.1 CPU瓶颈问题的监控与诊断
6.6.2 I/O瓶颈的监控与诊断
6.6.3内存瓶颈的监控与诊断
6.6.4懒惰系统的监控与诊断
6.7图形化性能管理器
6.8小结
第7章 配置参数与运维工具优化
7.1配置参数优化
7.1.1操作系统参数优化
7.1.2 DBM参数优化
7.1.3 DB参数优化
7.1.4注册变量优化
7.1.5常见问题总结
7.2日常运维工具的使用与优化
7.2.1知己知彼——统计信息收集
7.2.2集中兵力——碎片整理工具
7.2.3随机应变——重新绑定
7.3数据移动工具
7.3.1导出数据(EXPORT)
7.3.2导入数据(IMPORT)
7.3.3 LOAD——导入大数据的核武器
7.3.4 LOAD FROM CURSOR轻松移动数据
7.3.5 INGEST——性能和可用性间平衡的使者
7.3.6使用db2move在数据库间移动数据
7.3.7 db2relocatedb—— DB2移形换位
7.3.8存储过程——内部数据挪移的利器
7.3.9特殊对象的移动方式
7.4备份恢复工具优化
7.4.1备份的基本原理与优化
7.4.2 DB2崩溃恢复、版本恢复和前滚恢复与优化
7.5运维工具的调速策略
7.6小结
第8章 锁和日志优化
8.1 DB2锁机制解析
8.1.1没有锁会发生什么
8.1.2锁的类型和兼容性
8.2 DB2隔离级
8.2.1 DB2提供的四种隔离级
8.2.2如何设定隔离级
8.3实战案例:锁问题分析和解决
8.3.1什么是锁问题
8.3.2从监控开始
8.3.3锁等待分析和解决
8.3.4锁超时分析和解决
8.3.5锁升级分析和解决
8.3.6死锁分析和解决
8.4深入浅出——DB2日志的秘密
8.4.1 DB2日志的原理
8.4.2 DB2日志的模式
8.4.3日志优化的最佳实践
8.5并发机制比较:DB2 vs Oracle
8.5.1锁与隔离级别:DB2 vs Oracle
8.5.2日志:DB2 vs Oracle
8.6并发性能优化
8.6.1应用开发
8.6.2数据库调优
8.7小结
第9章 SQL语句优化实战
9.1 SQL优化基础,理解DB2优化器
9.1.1 SQL语句的编译过程
9.1.2 DB2优化器的核心作用
9.1.3 SQL语句优化过程
9.2 SQL优化关键:分析访问计划
9.2.1解释(Explain)工具
9.2.2解读访问计划
9.2.3表扫描与索引扫描
9.2.4嵌套循环连接、归并连接和哈希连接
9.2.5基数估计和统计信息
9.2.6用优化概要定制访问计划
9.3实战案例集锦
9.3.1案例1:不可思议的物理读次数
9.3.2案例2:理想的索引没用上
9.3.3案例3:标记位(Flag)数据上的runstats时机
9.3.4案例4: NLJOIN vs HSJOIN大比拼
9.3.5案例5:不是压缩惹的祸
9.3.6案例6:居高不下的CPU占用率
9.4高级SQL语句应用
9.4.1 Merge语句
9.4.2层次查询和SQL递归
9.4.3报表开发中的GROUP BY扩展
9.5编写高效SQL语句
9.5.1不要检索多余的数据
9.5.2避免在连接谓词中使用复杂表达式
9.5.3将复杂表达式放在常量上
9.5.4使用DB2提供的日期类型
9.5.5谨慎对待隐式类型转换
9.5.6外连接的顺序
9.5.7 IN和EXISTS子查询
9.5.8 OFNR和FFNR子句
9.5.9动态SQL vs静态SQL
9.5.10分组拼接字符串:LISTAGG
9.5.11事务结束后及时COMMIT
9.6小结
第10章 DB2数据仓库设计与优化
10.1数据仓库是什么
10.1.1数据仓库的误区
10.1.2数据仓库的体系结构
10.2支撑数据仓库的DB2特性
10.2.1分区数据库
10.2.2灵活的数据分区
10.2.3多分区环境下的连接(Join)策略
10.2.4物化查询表
10.3 DB2数据仓库设计
10.3.1 BCU/BPU的设计原则
10.3.2数据BPU上存储划分
10.3.3数据库的文件系统划分
10.3.4仓库中诞生的数据库
10.3.5数据库分区组的设计
10.3.6缓冲池的设计
10.3.7数据库日志的设计
10.3.8表空间的设计
10.3.9表的存放技巧
10.3.10数据压缩
10.4数据仓库实战
10.4.1硬件环境
10.4.2实例的规划与实施
10.4.3数据库的规划与实施
10.4.4参数设置
10.4.5其他操作
10.5工作负载管理(W LM)
10.5.1管理已知的工作负载
10.5.2管理不可预见的工作负载
10.5.3管理并行的LOAD工作负载
10.5.4监控工作负载
10.6数据仓库优化总结
10.6.1与OLTP系统的区别
10.6.2设定优化目标
10.6.3物理优化
10.6.4逻辑优化
10.7与Oracle数据仓库比较
10.8小结
第11章 DB2 pureScale集群数据库
11.1深入浅出DB2 pureScale架构
11.1.1 DB2 pureScale架构
11.1.2 DB2 pureScale的特点
11.1.3 DB2 pureScale与DB2 DPF的区别
11.2从细节入手:与Oracle RAC对比
11.3某银行DB2 pureScale实战案例
11.3.1从硬件配置开始
11.3.2突破难点:网络规划
11.3.3抓住重点:存储与文件系统
11.3.4检查与配置
11.3.5正式安装
11.3.6数据库部署
11.3.7应用端配置
11.4 DBA必须掌握的:DB2 pureScale实用运维命令
11.4.1日常管理命令
11.4.2节点维护命令
11.4.3 GPFS文件系统管理命令
11.4.4监控命令
11.5 DB2 pureScale规划总结
11.6小结