标题：深入解析DB2：高级管理、内部体系结构与诊断案例
基本信息
出版社: 清华大学出版社; 第1版 (2009年5月1日)
平装: 471页
正文语种: 简体中文
开本: 16
ISBN: 9787302201373
条形码: 9787302201373
商品尺寸: 22.6 x 18.2 x 2.6 cm
商品重量: 762 g
品牌: 清华大学出版社
ASIN: B002C1ABU4
内容简介
《深入解析DB2:高级管理、内部体系结构与诊断案例》数据库内核是数据库系统稳定运行的心脏，DB2数据库内核庞大而复杂。本书从DB2内核组件入手，同时介绍了其与操作系统在进程、共享内存、信号量之间的关系。作者在本书中重点介绍了各个内部组件的层次与功能、内存体系结构、存储内部结构、高级锁等。优化器是任何数据库执行SQL的关键部分，本书对优化器产生的各种执行计划进行了详细解释，这对于理解DB2内部工作原理大有裨益。同时，本书还介绍了DB2各种诊断工具的使用，各种数据库配置参数含义及调整、数据库系统视图等。
本书封面贴有清华大学出版社防伪标签，无标签者不得销售。
编辑推荐
《深入解析DB2:高级管理、内部体系结构与诊断案例》特色：
◆ 本书把DB2作为一个运行在操作系统上的普通程序，这样更容易理解DB2在系统资源方面如何与操作系统交互的。
◆ 贯穿全书的是丰富的实践案例和脚本，读者可以从这些案例和脚本中观察出作者诊断和解决问题的思路。
◆ 本书把对DB2数据库内核讲解提升到关系型数据库管理系统应具有的组件和功能高度，熟悉其他关系型数据库的读者可以触类旁通很容易理解DB2数据库。
目录
第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 VariationLock) 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