深入解析DB2
深入解析DB2封面图

深入解析DB2

牛新庄, 著

出版社:清华大学出版社

年代:2009

定价:48.0

书籍简介:

本书从DB2内核组织入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。本书还重点介绍了各个内部组件的层次与功能、内存体系结构、存储体系结构、高级锁、优化器,以及DB2各种诊断工具的用法等。

作者介绍:

牛新庄博士,是国内顶尖数据库维护、优化和架构专家,以217万年薪受聘于中国建行总行资深技术专家,在国内的金融六大行、证券、保险、电信、邮政、移动等行业,以及青岛海尔、云南红塔、中远集团、上海宝钢等知名企业做数据库的设计、维护、问题诊断和性能调优。 牛新庄博士拥有20多项国际厂商认证(包括DB2 V5~V9的全部认证),获得过国内数据库领域最高荣誉的“2006年中国首届杰出数据库工程师”奖,首届IBM杰出软件专家奖,“2006年IT 168技术卓越”奖等奖项。

书籍目录:

第1章 DB2底层组件 1

1.1 DB2底层组件概述 1

1.2 OSS组件 3

1.2.1 OSS组件功能 3

1.2.2 OSS组件诊断案例 5

1.3 Memory Optimizer组件 6

1.4 BSU组件 7

1.4.1 BSU组件功能 7

1.4.2 BSU组件诊断案例 8

1.5 CCI组件 9

1.5.1 CCI组件功能 9

1.5.2 CCI组件诊断案例 10

1.6 RDS组件 11

1.6.1 RDS组件功能 11

1.6.2 RDS诊断案例 12

1.7 DMS组件 13

1.7.1 DMS组件功能 13

1.7.2 DMS诊断案例 14

1.8 IXM组件 15

1.8.1 IXM组件功能 15

1.8.2 IXM诊断案例 15

1.9 BPS组件 16

1.9.1 BPS组件功能 16

1.9.2 BUFFERPOOL配置文件 17

1.9.3 缓冲描述符BPD 17

1.9.4 BUFFERPOOL管理算法 20

1.9.5 基于块的缓冲池 24

1.9.6 BPS组件诊断案例 26

1.10 DPS组件 26

1.10.1 DPS组件功能 26

1.10.2 DPS组件诊断案例 27

1.11 DB2底层组件总结 28

1.12 本章小结 29

第2章 DB2进程体系结构 31

2.1 DB2 进程技术模型 32

2.1.1 与操作系统相关的进程 34

2.1.2 与实例相关的进程 36

2.1.3 与数据库相关的进程 38

2.1.4 与应用程序相关的进程 41

2.1.5 Windows上相关的服务/线程 43

2.2 代理程序通信 44

2.2.1 代理程序概述 44

2.2.2 代理程序相关配置参数 44

2.2.3 连接集中器工作原理 47

2.2.4 应用程序、代理程序和交易 50

2.2.5 代理和连接常见问题与优化 51

2.2.6 DB2 V8、V9.1、V9.5 代理的差异性 56

2.3 实用程序相关进程 57

2.3.1 LOAD相关进程 57

2.3.2 备份/恢复相关进程 60

2.4 DB2 V9.5多线程体系结构概述 62

2.4.1 多线程简介 62

2.4.2 DB2 V9.5主要进程 64

2.4.3 监控多线程 65

2.4.4 监控EDU运行的SQL语句 67

2.5 本章小结 69

第3章 DB2内存体系结构 69

3.1 32位与64位内存寻址 69

3.1.1 32位与64位寻址空间 69

3.1.2 32位系统常见内存问题 71

3.1.3 32位系统内存寻址解决方案 71

3.2 DB2内存体系结构 72

3.2.1 实例共享内存 73

3.2.2 数据库全局内存 74

3.2.3 应用程序全局内存 79

3.2.4 代理私有内存 82

3.2.5 代理程序与应用程序通信内存 83

3.2.6 共享内存与私有内存 84

3.3 内存集、内存池和内存块 86

3.3.1 实例级别内存集 87

3.3.2 跟踪内存使用 90

3.3.3 定位内存泄漏 93

3.3.4 数据库内存集 93

3.4 内存自动调优 96

3.4.1 内存自动调优示例 98

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

3.5 本章小结 99

第4章 DB2存储内部结构 101

4.1 数据库物理存储模型 101

4.1.1 DB2存储层次结构 101

4.1.2 数据库物理目录 104

4.2 表空间存储结构 106

4.2.1 SMS表空间存储结构 107

4.2.2 DMS表空间头部信息 108

4.2.3 DMS表空间映射 109

4.2.4 STRIPE SET和RANGE 112

4.2.5 表空间重平衡 115

4.2.6 表空间高水位 118

4.3 数据库内部存储结构 124

4.3.1 数据页和RID格式 124

4.3.2 列在磁盘上的布局 128

4.3.3 数据页内部结构 130

4.3.4 索引叶内部结构 133

4.3.5 数据库物理存储限制 138

4.4 日志文件存储结构 139

4.4.1 日志存储内容 139

4.4.2 SQLOG.CTL 144

4.5 本章小结 148

第5章 DB2优化器 149

5.1 DB2优化器介绍 150

5.2 SQL语句执行过程 152

5.3 优化器组件和工作原理 154

5.3.1 查询重写示例:谓词移动、合并和转换 155

5.3.2 优化器成本评估 161

5.3.3 本地谓词基数(CARDINALITY)估计 162

5.3.4 连接基数(CARDINALITY)估计 164

5.3.5 分布统计信息 168

5.3.6 列组统计信息对基数的影响 172

5.4 扫描方式 183

5.4.1 全表扫描 183

5.4.2 索引扫描 184

5.4.3 RID SCAN 187

5.5 连接方法 188

5.5.1 嵌套循环连接 189

5.5.2 合并连接 190

5.5.3 哈希(hash)连接 191

5.5.4 选择最佳连接的策略 192

5.6 优化级别 193

5.6.1 优化级别概述 193

5.6.2 选择优化级别 197

5.6.3 设置优化级别 198

5.7 基于规则的优化 200

5.7.1 优化器概要文件概述 200

5.7.2 启用优化概要文件 202

5.7.3 优化概要文件使用示例 204

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

5.8.1 使DB2统计信息保持最新 211

5.8.2 构建适当的索引 211

5.8.3 配置合理的数据库配置参数 212

5.8.4 选择合适的优化级别 213

5.8.5 合理的存储I/O设计 213

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

5.9 优化器总结 217

第6章 高级锁 219

6.1 隔离级别和锁 219

6.1.1 可重复读 220

6.1.2 读稳定性 221

6.1.3 游标稳定性 224

6.1.4 未提交读 226

6.1.5 隔离级别加锁示例讲解 228

6.1.6 隔离级别摘要 232

6.2 加锁总结 234

6.2.1 如何获取锁 234

6.2.2 意图锁和非意图锁 236

6.2.3 读锁和写锁 236

6.2.4 LRB(Lock Resource Block) 237

6.2.5 USE AND KEEP LOCKS 237

6.2.6 索引类型和下一键锁 239

6.2.7 扫描方式加锁情况 240

6.3 乐观锁 243

6.3.1 悲观锁定和乐观锁定 243

6.3.2 DB2 V9.5的乐观锁定 245

6.3.3 乐观锁应用案例 251

6.4 内部锁 259

6.4.1 内部方案锁(Internal Plan Lock) 259

6.4.2 内部V锁(Internal Variation Lock) 260

6.4.3 内部S锁 262

6.4.4 内部C锁 262

6.4.5 其他内部锁 264

6.5 设置锁相关的注册变量 268

6.5.1 DB2_EVALUNCOMMITTED 269

6.5.2 DB2_SKIPDELETED 273

6.5.3 DB2_SKIPINSERTED 274

6.6 本章小结 276

第7章 数据库配置参数 279

7.1 数据库配置参数概述 279

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

7.2.1 并行相关的配置参数 281

7.2.2 安全相关的配置参数 283

7.2.3 环境相关的配置参数 284

7.2.4 监视相关的配置参数 284

7.2.5 通信相关的配置参数 284

7.2.6 诊断相关的配置参数 285

7.2.7 代理程序相关配置参数 285

7.2.8 SHEAPTHRES 288

7.2.9 MON_HEAP_SZ 288

7.2.10 QUERY_HEAP_SZ 288

7.3 监控和调优DB配置参数 288

7.3.1 内存相关配置参数调整 290

7.3.2 应用程序堆大小(APPHEAPSZ) 298

7.3.3 SORTHEAP和SHEAPTHRES 298

7.3.4 SHEAPTHRES_SHR 301

7.3.5 锁相关配置参数 301

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

7.3.7 PKGCACHESZ 305

7.3.8 CATALOGCACHE_SZ 305

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

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

7.3.11 组提交数目(MINCOMMIT) 308

7.3.12 AVG_APPLS 310

7.3.13 CHNGPGS_THRESH (DB) 310

7.3.14 MAXFILOP 310

7.3.15 LOGPRIMARY、LOGSECOND 和 LOGFILSZ 310

7.3.16 日志缓冲区大小(LOGBUFSZ) 311

7.3.17 STMTHEAP 312

7.3.18 DFT_QUERYOPT 312

7.3.19 UTIL_HEAP_SZ (DB) 312

7.3.20 其他数据库配置参数 312

7.4 环境变量和DB2注册表变量 313

7.4.1 DB2INSTANCE变量 315

7.4.2 DB2_PARALLEL_IO 316

7.4.3 DB2_USE_PAGE_CONTAINER_TAG 318

7.4.4 DB2_SELECTIVITY 319

7.4.5 DB2_INLIST_TO_NLJN 320

7.4.6 DB2_MINIMIZE_LISTPREFETCH 321

7.4.7 DB2_USE_ALTERNATE_PAGE_CLEANING 321

7.4.8 DB2_REDUCED_OPTIMIZATION 321

7.4.9 DB2_LIKE_VARCHAR 322

7.4.10 DB2_NEW_CORR_SQ_FF 324

7.4.11 DB2_OPT_MAX_TEMP_SIZE 324

7.5 本章小结 325

第8章 DB2数据字典 327

8.1 系统目录视图概述 327

8.2 SYSCAT系统编目视图 328

8.2.1 数据库对象信息 328

8.2.2 权限相关的系统编目视图 330

8.2.3 程序包相关的系统编目视图 332

8.3 SYSIBMADM管理视图 334

8.3.1 监控缓冲池命中率 336

8.3.2 监控PACKAGE CACHE大小 336

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

8.3.4 监控运行最长的SQL语句 337

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

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

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

8.3.8 监控LOCK WAIT时间 339

8.3.9 监控LOCK CHAIN 340

8.3.10 监控锁内存使用 340

8.3.11 监控锁升级、死锁和锁超时 341

8.3.12 监控全表扫描的SQL 341

8.3.13 检查PAGE CLEANERS是否足够 342

8.3.14 监控PREFETCHER是否足够 343

8.3.15 监控数据库内存使用 343

8.3.16 监控日志使用情况 344

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

8.3.18 监控存储路径 345

8.3.19 监控表空间使用情况 346

8.4 SYSSTAT系统编目视图 347

8.5 利用系统编目视图编写脚本案例 350

8.5.1 案例1 350

8.5.2 案例2 351

8.6 保护系统编目视图 352

8.7 本章小结 353

第9章 高级诊断 355

9.1 db2dart和inspect 355

9.1.1 db2dart和inspect概述 355

9.1.2 利用db2dart查找停顿(quiesce)表空间的用户 358

9.1.3 db2dart诊断高水位问题 360

9.1.4 db2dart诊断数据页损坏问题 362

9.1.5 inspect命令使用案例 365

9.2 db2pdcfg 366

9.2.1 db2pdcfg -cos选项 368

9.2.2 db2pdcfg-catch选项 371

9.2.3 db2pd -fodc选项 376

9.3 db2trc 376

9.3.1 db2trc 376

9.3.2 db2trc案例1 385

9.3.3 db2trc案例2 386

9.4 db2_call_stack和db2nstck 395

9.5 高级诊断案例 396

9.6 小结 400

第10章 深入讲解解释输出 401

10.1 执行计划基础 401

10.2 表访问信息 404

10.2.1 常规表访问 404

10.2.2 扫描方式 407

10.2.3 锁和隔离级别信息 411

10.2.4 谓词 412

10.2.5 临时表访问 416

10.3 排序 419

10.3.1 排序原理 419

10.3.2 共享排序与私有排序 421

10.3.3 监控排序 423

10.3.4 优化排序性能 426

10.4 预取方式 428

10.4.1 数据库预取概念 428

10.4.2 顺序预取 430

10.4.3 列表预取 432

10.4.4 提高预取性能 436

10.5 连接信息 437

10.5.1 嵌套循环连接(NLJOIN) 438

10.5.2 合并连接(MSJOIN) 439

10.5.3 哈希连接(HSJOIN) 440

10.5.4 外连接 442

10.6 IndexORing和IndexANDing 443

10.6.1 IndexORing案例 443

10.6.2 IndexANDing案例 445

10.7 其他输出信息 447

10.7.1 数据流信息 447

10.7.2 插入、更新和删除信息 449

10.7.3 并行处理信息 450

10.7.4 其他说明信息 451

10.8 基于执行计划的优化案例 453

10.9 本章小结 470

参考文献 471

内容摘要:

数据库内核是数据库系统稳定运行的心脏,DB2数据库内核庞大而复杂。本书从DB2内核组件入手,同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分,本书对优化器产生的各种执行计划进行了详细解释,这对于理解DB2内部工作原理大有裨益。同时,本书还介绍了DB2各种诊断工具的使用,各种数据库配置参数含义及调整、数据库系统视图等。本书第二版已经出版,点击查看《高级进阶DB2:内部结构、高级管理与问题诊断(第2版)》

编辑推荐:

购买新版请见:
高级进阶DB2:内部结构、高级管理与问题诊断(第2版)
《深入解析DB2:高级管理、内部体系结构与诊断案例》特色:
◆本书把DB2作为一个运行在操作系统上的普通程序,这样更容易理解DB2在系统资源方面如何与操作系统交互的。
◆ 贯穿全书的是丰富的实践案例和脚本,读者可以从这些案例和脚本中观察出作者诊断和解决问题的思路。
◆本书把对DB2数据库内核讲解提升到关系型数据库管理系统应具有的组件和功能高度,熟悉其他关系型数据库的读者可以触类旁通很容易理解DB2数据库。本书第二版已经出版,点击查看《高级进阶DB2:内部结构、高级管理与问题诊断(第2版)》

书籍规格:

书籍详细信息
书名深入解析DB2站内查询相似图书
9787302201373
如需购买下载《深入解析DB2》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)48.0语种简体中文
尺寸26装帧平装
页数 487 印数 3000

书籍信息归属:

深入解析DB2是清华大学出版社于2009.出版的中图分类号为 TP311.132.3 的主题关于 关系数据库-数据库管理系统,DB2 的书籍。