为你推荐
扉页
内容简介
版权页
序一
序二
序三
序四
前言
目录
第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 V10新特性:自适应压缩
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 工作负载管理(WLM)
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 小结
后记 信念的奇迹
缩略语
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜