DB2设计、管理与性能优化艺术

DB2设计、管理与性能优化艺术

王飞鹏, 李玉明, 朱志辉, 王富国, 编著

出版社:清华大学出版社

年代:2013

定价:79.0

书籍简介:

本书共分为4大部分。第一部分从业务角度和系统角度对客户遇到的数据库性能问题进行分析,认为高质量的数据库设计是高效系统的基础,进而提供了一套基于方法系统;然后通过一个电信公司的实际案例,来展示如何来调整设计并解决性能问题。第二部分从性能优化的高度详细介绍如何高质量的设计DB2数据库应用。第三部分介绍了DB2数据库的性能优化

作者介绍:

王飞鹏, IBM公司DB2资深顾问,首屈一指的数据库开发、维护、优化和架构专家。曾为电信、银行、中央部委、中国高铁等大型数据库项目做出了重要贡献。发表数据库论文12篇,拥有软件专利3项。每年通过大量咨询、讲座、培训等方式,为数据库人才更好地运用数据库技术做出了最大的努力。 李玉明,DB2数据库资深软件工程师。多年来一直从事DB2内核编译器和优化器的开发工作。擅长DB2应用系统的架构和开发、大型数据库性能优化,对DB2存储过程的开发和内部运行机制有很深的造诣。曾发表多篇数据库技术论文,拥有IBM DB2各项认证。 朱志辉,IBM资深软件工程师,来自IBM DataStudio开发团队,具有多年的数据库软件开发经验,擅长解决各种数据库应用系统的性能问题,拥有IBM DB2各项认证和Oracle OCP证书。 王富国,IBM Data Warehouse/BI 项目组高级软件工程师,IBM认证高级DBA。有丰富的数据仓库经验,在数据仓库健康检查和高可用性方面也有颇深的研究,具有丰富的性能调优、实施和客户支持经验。

书籍目录:

第1章 性能优化方法学

1.1 什么是性能问题 2

1.1.1 如何发现性能问题 2

1.1.2 衡量性能的关键指标 2

1.1.3 性能基准测试 3

1.1.4 制定优化目标 3

1.2 性能优化方法学 3

1.2.1 几种常见误区 4

1.2.2 自上而下(From Top To Down)方法学 4

1.2.3 自下而上(From Down To Top)方法学 5

1.2.4 自上而下和自下而上,如何选择? 5

1.3 高质量数据库设计 5

1.3.1 充分了解需求 6

1.3.2 设计概念模型 7

1.3.3 设计逻辑结构 8

1.3.4 设计物理结构 10

1.3.5 应用开发阶段 10

1.3.6 运行维护阶段 11

1.4 性能调整与优化 11

1.4.1 磁盘瓶颈 12

1.4.2 CPU瓶颈 14

1.4.3 内存瓶颈 16

1.4.4 网络瓶颈 17

1.4.5 懒惰系统 17

1.4.6 关键SQL语句优化 18

1.5 性能优化基本准则 18

1.6 小结 19

第2章 实战案例研究与分享

2.1 性能问题的提出 21

2.1.1 系统现状:从Oracle RAC谈起 21

2.1.2 性能优化解决方案:“分库”架构 22

2.1.3 高可用解决方案:DB2 HADR 24

2.2 实施:经营分析库 26

2.2.1 DB2数据库安装 26

2.2.2 操作系统参数配置 27

2.2.3 实例创建与配置 29

2.2.4 存储规划与文件系统创建 30

2.2.5 数据库创建 32

2.2.6 DB2参数配置 35

2.3 实施:DB2 HADR 38

2.3.1 准备工作 38

2.3.2 复制数据库 38

2.3.3 配置HADR 43

2.3.4 启动主从数据库 44

2.3.5 HADR切换演练 45

2.3.6 为JAVA应用配置ACR 47

2.4 性能分析 48

2.4.1 业务分析 49

2.4.2 系统分析 49

2.4.3 优化方法学与计划 50

2.5 性能优化 51

2.5.1 全局调整和优化 51

2.5.2 人力资源模块优化 64

2.5.3 查询分析模块优化 69

2.5.4 报表应用优化 72

2.5.5 性能优化总结 74

2.6 小结 75

第3章 高质量物理设计

3.1 从数据库硬件选型谈起 77

3.1.1 对主机的考虑 77

3.1.2 对存储的考虑 77

3.1.3 对网络环境的考虑 78

3.1.4 电信公司选型结果 78

3.2 存储设计 79

3.2.1 磁盘与磁盘阵列技术 80

3.2.2 条带化 83

3.2.3 存储设计 84

3.2.4 为电信公司规划存储 87

3.2.5 为电信公司创建数据库 87

3.3 表空间设计 88

3.3.1 表空间管理方式 88

3.3.2 表空间类型 91

3.3.3 表空间参数设置 92

3.3.4 为电信公司设计表空间 93

3.4 内存的设置管理 94

3.4.1 解密DB2内存 95

3.4.2 缓冲池设计 99

3.4.3 缓冲池命中率 101

3.4.4 STMM自动管理内存 102

3.4.5 为电信公司设计缓冲池 102

3.5 高质量物理设计最佳实践 103

3.5.1 硬件配置 103

3.5.2 存储的设计配置 103

3.5.3 数据库参数初始化选择 104

3.5.4 内存设置管理 104

3.5.5 表空间设计管理 104

3.6 小结 105

第4章 经典逻辑设计

4.1 数据库设计不仅是一种艺术 107

4.1.1 业务需求 107

4.1.2 性能需求 107

4.2 常规表设计体现真功夫 108

4.2.1 规范化决定成败 108

4.2.2 用户与模式 109

4.2.3 字段与类型 111

4.2.4 建表的讲究 114

4.2.5 键与约束 118

4.2.6 序列、标识列和生成列 120

4.2.7 处理大对象的智慧 122

4.3 扑朔迷离的临时表 125

4.3.1 声明全局临时表(DGTT) 125

4.3.2 创建全局临时表(CGTT) 127

4.3.3 临时表小结 128

4.4 无处不在的时态表 129

4.4.1 无处不在的时间 129

4.4.2 系统时态表 130

4.4.3 应用时态表 134

4.4.4 双时态表 138

4.4.5 将普通表转换为时态表 139

4.5 索引设计是一招鲜,吃遍天 140

4.5.1 DB2索引长什么样 140

4.5.2 为了性能设计索引 142

4.5.3 吃透组合索引 148

4.5.4 创建索引 150

4.5.5 索引的常见误区 150

4.6 触发器设计一瞥 155

4.7 小结 156

第5章 高级逻辑设计

5.1 如何处理TB级的数据 158

5.1.1 方法学指导 158

5.1.2 合理运用高级设计技术 158

5.2 DB2 DPF设计 159

5.2.1 DB2 DPF技术内幕 160

5.2.2 DB2 DPF设计最佳实践 161

5.3 表分区设计 162

5.3.1 表分区技术内幕 163

5.3.2 全局索引vs分区索引 166

5.3.3 转入转出 168

5.3.4 分区排除技术 169

5.3.5 分区维护 172

5.3.6 V10新特性:多温度存储 173

5.4 MDC表设计 175

5.4.1 MDC技术内幕 175

5.4.2 MDC表设计最佳实践 177

5.4.3 案例:“吃磁盘”的MDC表 178

5.5 分区技术对比:DB2 vs Oracle 179

5.6 MQT设计 184

5.6.1 MQT的能力 184

5.6.2 创建MQT必须掌握的要点 187

5.6.3 深入讨论MQT的刷新机制 188

5.6.4 MQT设计最佳实践 190

5.7 强大的数据压缩 192

5.7.1 行压缩深度剖析 192

5.7.2 V10新特性:自适应压缩 194

5.7.3 数据压缩实践与探索 195

5.8 小结 198

第6章 系统监控

6.1 由一则新闻想到的 200

6.2 操作系统监控 200

6.2.1 CPU监控 201

6.2.2 I/O监控 203

6.2.3 内存监控 204

6.2.4 网络监控 206

6.3 数据库监控 207

6.3.1 快照监视器 207

6.3.2 事件监视器 211

6.3.3 监视器表函数 214

6.3.4 管理视图 218

6.3.5 db2pd 219

6.3.6 db2top 222

6.4 关键SQL语句监控 223

6.4.1 监控最耗费用户CPU时间的动态SQL 223

6.4.2 监控访问热点对象执行次数最多的SQL 224

6.4.3 监控运行时间最长的SQL 224

6.4.4 监控执行次数最多的SQL 224

6.4.5 监控排序次数最多的SQL 225

6.5 关键性能指标(KPI) 225

6.5.1 缓冲区命中率 225

6.5.2 包缓冲区命中率 226

6.5.3 编目缓冲区命中率 226

6.5.4 缓冲区读写平均响应时间 226

6.5.5 日志写入速度 227

6.5.6 锁升级及死锁 227

6.5.7 排序溢出率 227

6.5.8 数据、索引页异步清除比例 228

6.5.9 脏页偷取次数 228

6.6 融会贯通——监控的最佳实践 229

6.6.1 CPU瓶颈问题的监控与诊断 229

6.6.2 I/O瓶颈的监控与诊断 231

6.6.3 内存瓶颈的监控与诊断 234

6.6.4 懒惰系统的监控与诊断 236

6.7 图形化性能管理器 237

6.8 小结 238

第7章 配置参数与运维工具优化

7.1 配置参数优化 240

7.1.1 操作系统参数优化 240

7.1.2 DBM参数优化 242

7.1.3 DB参数优化 244

7.1.4 注册变量优化 249

7.1.5 常见问题总结 250

7.2 日常运维工具的使用与优化 250

7.2.1 知已知彼——统计信息收集 250

7.2.2 集中兵力——碎片整理工具 251

7.2.3 随机应变——重新绑定 253

7.3 数据移动工具 254

7.3.1 导出数据(EXPORT) 255

7.3.2 导入数据(IMPORT) 256

7.3.3 LOAD——导入大数据的核武器 259

7.3.4 LOAD FROM CURSOR轻松移动数据 269

7.3.5 INGEST——性能和可用性间平衡的使者 270

7.3.6 使用db2move在数据库间移动数据 274

7.3.7 db2relocatedb——DB2移形换位 276

7.3.8 存储过程——内部数据挪移的利器 278

7.3.9 特殊对象的移动方式 283

7.4 备份恢复工具优化 286

7.4.1 备份的基本原理与优化 286

7.4.2 DB2崩溃恢复、版本恢复和前滚恢复与优化 290

7.5 运维工具的调速策略 294

7.6 小结 296

第8章 锁和日志优化

8.1 DB2锁机制解析 299

8.1.1 没有锁会发生什么 299

8.1.2 锁的类型和兼容性 301

8.2 DB2隔离级 305

8.2.1 DB2提供的四种隔离级 305

8.2.2 如何设定隔离级 307

8.3 实战案例:锁问题分析和解决 308

8.3.1 什么是锁问题 308

8.3.2 从监控开始 309

8.3.3 锁等待分析和解决 311

8.3.4 锁超时分析和解决 314

8.3.5 锁升级分析和解决 315

8.3.6 死锁分析和解决 316

8.4 深入浅出——DB2日志的秘密 320

8.4.1 DB2日志的原理 320

8.4.2 DB2日志的模式 323

8.4.3 日志优化的最佳实践 325

8.5 并发机制比较:DB2 vs Oracle 326

8.5.1 锁与隔离级别:DB2 vs Oracle 326

8.5.2 日志:DB2 vs Oracle 327

8.6 并发性能优化 328

8.6.1 应用开发 328

8.6.2 数据库调优 329

8.7 小结 330

第9章 SQL语句优化实战

9.1 SQL优化基础,理解DB2优化器 332

9.1.1 SQL语句的编译过程 332

9.1.2 DB2优化器的核心作用 333

9.1.3 SQL语句优化过程 334

9.2 SQL优化关键:分析访问计划 334

9.2.1 解释(Explain)工具 334

9.2.2 解读访问计划 338

9.2.3 表扫描与索引扫描 345

9.2.4 嵌套循环连接、归并连接和哈希连接 348

9.2.5 基数估计和统计信息 353

9.2.6 用优化概要定制访问计划 362

9.3 实战案例集锦 366

9.3.1 案例1:不可思议的物理读次数 367

9.3.2 案例2:理想的索引没用上 370

9.3.3 案例3:标记位(Flag)数据上的runstats时机 374

9.3.4 案例4:NLJOIN vs HSJOIN大比拼 377

9.3.5 案例5:不是压缩惹的祸 381

9.3.6 案例6:居高不下的CPU占用率 385

9.4 高级SQL语句应用 390

9.4.1 Merge语句 390

9.4.2 层次查询和SQL递归 392

9.4.3 报表开发中的GROUP BY扩展 398

9.5 编写高效SQL语句 401

9.5.1 不要检索多余的数据 401

9.5.2 避免在连接谓词中使用复杂表达式 402

9.5.3 将复杂表达式放在常量上 402

9.5.4 使用DB2提供的日期类型 403

9.5.5 谨慎对待隐式类型转换 404

9.5.6 外连接的顺序 404

9.5.7 IN和EXISTS子查询 405

9.5.8 OFNR和FFNR子句 410

9.5.9 动态SQL vs静态SQL 410

9.5.10 分组拼接字符串:LISTAGG 412

9.5.11 事务结束后及时COMMIT 412

9.6 小结 413

第10章 DB2数据仓库设计与优化

10.1 数据仓库是什么 415

10.1.1 数据仓库的误区 415

10.1.2 数据仓库的体系结构 417

10.2 支撑数据仓库的DB2特性 417

10.2.1 分区数据库 417

10.2.2 灵活的数据分区 419

10.2.3 多分区环境下的连接(Join)策略 422

10.2.4 物化查询表 424

10.3 DB2数据仓库设计 424

10.3.1 BCU/BPU的设计原则 424

10.3.2 数据BPU上存储划分 427

10.3.3 数据库的文件系统划分 427

10.3.4 仓库中诞生的数据库 428

10.3.5 数据库分区组的设计 428

10.3.6 缓冲池的设计 429

10.3.7 数据库日志的设计 429

10.3.8 表空间的设计 430

10.3.9 表的存放技巧 430

10.3.10 数据压缩 431

10.4 数据仓库实战 431

10.4.1 硬件环境 431

10.4.2 实例的规划与实施 432

10.4.3 数据库的规划与实施 436

10.4.4 参数设置 439

10.4.5 其他操作 440

10.5 工作负载管理(WLM) 442

10.5.1 管理已知的工作负载 442

10.5.2 管理不可预见的工作负载 443

10.5.3 管理并行的LOAD工作负载 446

10.5.4 监控工作负载 446

10.6 数据仓库优化总结 448

10.6.1 与OLTP系统的区别 448

10.6.2 设定优化目标 449

10.6.3 物理优化 449

10.6.4 逻辑优化 450

10.7 与Oracle数据仓库比较 450

10.8 小结 451

第11章 DB2 pureScale集群数据库

11.1 深入浅出DB2 pureScale架构 453

11.1.1 DB2 pureScale架构 453

11.1.2 DB2 pureScale的特点 454

11.1.3 DB2 pureScale与DB2 DPF的区别 455

11.2 从细节入手:与Oracle RAC对比 455

11.3 某银行DB2 pureScale实战案例 457

11.3.1 从硬件配置开始 457

11.3.2 突破难点:网络规划 458

11.3.3 抓住重点:存储与文件系统 465

11.3.4 检查与配置 467

11.3.5 正式安装 471

11.3.6 数据库部署 473

11.3.7 应用端配置 473

11.4 DBA必须掌握的: DB2 pureScale实用运维命令 476

11.4.1 日常管理命令 477

11.4.2 节点维护命令 479

11.4.3 GPFS文件系统管理命令 480

11.4.4 监控命令 481

11.5 DB2 pureScale规划总结 484

11.6 小结 485

后记 信念的奇迹

缩略语

参考文献

内容摘要:

本书内容严谨精细、生动活泼,从内容来看,共分为四大部分,共11章。第一部分包括第1章和第2章,提出了两种性能优化方法学,包括理想化的自上而下方法学和救急专用的自下而上方法学,随后通过一个真实的实战案例,阐述了如何灵活运用方法学。第二部分是设计部分,包括第3章、第4章和第5章,分别谈到了物理设计、基础逻辑设计和高级逻辑设计,这是设计一个高质量的数据库系统所必须掌握的内容。第三部分是性能优化部分,包括第6章、第7章、第8章和第9章,讲述了如何对DB2进行性能监控,如何调整参数和优化维护工具,如何调整锁和日志来优化高并发系统,如何来优化最耗资源的SQL语句。第四部分是有关高级设计与优化内容,包括第10章和第11章,讲述了如何设计和优化大容量数据仓库,讲述了如何设计和优化DB2 pureScale集群。

编辑推荐:

·IBM原厂性能优化专著
·DB2pureScale设计与优化专著
·DB2数据仓库设计与优化专著
·涵盖DB2HADR灾备最佳实践
·涵盖DB2V10最新设计与优化技术
·将Oracle与DB2的对比贯穿全书
·融汇金融、电信、政府等行业实战案例
·表达新颖独特、内容深入浅出
·DB2从业人员的案头必备之作

书籍规格:

书籍详细信息
书名DB2设计、管理与性能优化艺术站内查询相似图书
9787302326618
如需购买下载《DB2设计、管理与性能优化艺术》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)79.0语种简体中文
尺寸26 × 19装帧平装
页数印数 4000

书籍信息归属:

DB2设计、管理与性能优化艺术是清华大学出版社于2013.出版的中图分类号为 TP311.138 的主题关于 关系数据库系统-程序设计 的书籍。