
| 这是第一本全面讲述数据库物理设计的书籍。关系数据库中所包含信息的迅速增加,使得数据库、性能和可维护性变得不再简单,DBA比以往任何时候都要在更大压力下去优化数据库结构的系统性能和管理。 《物理数据库设计——索引、视图和存储技术》一书讨论数据库的物理结构如何影响性能,包括具体的例子、向导、各种DBMS和配置的最好和最差的应用实例;一些简单的内容,如提高表的索引设计对性能有深远的影响;不同形式的数据库,如联机事务处理(OLTP)、企业资源管理(ERP)、数据挖掘(DM)和管理资源计划(MRP)等,这些数据库都可以使用书中提供的方法改善性能。 |
| Sam Lightstone,是IBM的DB2产品开发团队研发经理及高级技术人员,他的工作涉及 自主计算和关系数据库管理系统的许多方面。Sam Lightstone是DB2自主计算研发工作的 领导者和创始人之一,是自治数据库系统方面IEEE数据工程组的主席,是自治和自主计 算方面IEEE计算机协会任务组的成员。2003年,他当选为IBM技术研究院加拿大子公司 的杰出技术委员会委员。Sam Lightstone是IBM的发明大师,拥有超过25项专利和未决专 利,他所发表的成果涉及许多关于关系数据库系统自主计算的内容,从1991年开始一直就 职于IBM。 Toby Teorey是密歇根大学安娜堡分校电气工程与计算机科学系名誉教授以及工程学 院学术项目主任。他先后获得亚利桑那大学图森分校电气工程的理学学士、理学硕士学位 以及威斯康星大学麦迪逊分校的计算机科学博士学位,也一直是各种数据库会议委员会的 项目委员会主席和成员。 Tom Nadeau是阿拉丁软件(aladdinsoftware.com)的创始人,研究方向是数据及文本 挖掘领域。他先后获得密歇根大学安娜堡分校计算机科学理学学士、电气工程和计算机科 学硕士、博士学位,其研究的技术领域包括数据仓库、OLAP、数据挖掘和机器学习,并于 2001年获得IBM CASCON会议的最佳论文奖。 |
| 第1章 物理数据库设计概况 1 1.1 动机——数据增长和与日俱增的物理数据库设计 1 1.2 数据库生命周期 4 1.3 物理设计的元素:索引、分区和群集 5 1.3.1 索引 6 1.3.2 物化视图 7 1.3.3 分区和多维群集 7 1.3.4 物理数据库设计的其他方法 7 1.4 物理设计为什么这么困难 8 1.5 文献综述 9 第2章 基本索引方法 10 2.1 B+树索引 10 2.2 复杂的索引检索 14 2.2.1 复杂索引方法 16 2.2.2 表扫描 16 2.3 位图索引 17 2.4 记录标识符 18 2.5 小结 18 2.6 文献综述 19 第3章 查询优化和方案选择 20 3.1 查询过程和优化 20 3.2 有用的数据库优化特性 20 3.2.1 查询转换和重写 21 3.2.2 查询执行计划视图 21 3.2.3 柱状图 21 3.2.4 查询执行计划提示 21 3.2.5 优化深度 22 3.3 查询成本估计——一个例子 22 3.3.1 查询案例3.1 22 3.4 查询执行计划开发 27 3.4.1 查询执行计划的转换规则 27 3.4.2 查询执行计划的重构算法 28 3.5 选择因素、表规模和查询成本估算 28 3.5.1 估算一个选择操作或预期的选择性因素 28 3.5.2 直方图 29 3.5.3 估算关联的选择性因素 30 3.5.4 查询案例3.2 30 3.5.5 估算查询执行计划表大小的例子 32 3.6 小结 32 3.7 文献综述 33 第4章 选择索引 34 4.1 索引的概念及术语 34 4.1.1 基本索引类型 34 4.1.2 索引的访问方法 35 4.2 索引的经验规则 35 4.3 索引选择决策 37 4.4 连接索引选择 40 4.4.1 嵌套循环连接 40 4.4.2 块嵌套连接 42 4.4.3 索引嵌套循环连接 42 4.4.4 合并排序连接 43 4.4.5 哈希连接 44 4.5 小结 45 4.6 文献综述 46 第5章 物化视图选择 47 5.1 简单视图物化 48 5.2 使用通用性 51 5.3 使用分组和归纳 56 5.4 资源的一些注意事项 57 5.5 实例:“好的”、“差的”以及“可怕的” 59 5.6 使用语法和范例 62 5.7 小结 64 5.8 文献综述 64 第6章 无共享分区 65 6.1 理解无共享分区 65 6.1.1 无共享系统架构 65 6.1.2 为什么无共享架构会受到追捧 67 6.2 更多关键概念和术语 67 6.3 哈希分区 68 6.4 无共享架构的优缺点 69 6.5 无共享架构在OLTP系统中的使用 71 6.6 设计的挑战:偏斜与连接配置搭配 73 6.6.1 数据偏斜 73 6.6.2 配置搭配 74 6.7 降低节点间数据传送的数据库设计技巧 74 6.7.1 谨慎分区 74 6.7.2 物化视图复制以及其他复制技术 75 6.7.3 节点间互联 78 6.8 拓扑设计 79 6.8.1 使用节点的子集 79 6.8.2 逻辑节点与物理节点 81 6.9 资金去向 81 6.10 网格计算 82 6.11 小结 83 6.12 文献综述 84 第7章 范围分区 85 7.1 范围分区基础 85 7.2 列表分区 86 7.2.1 列表分区基础 86 7.2.2 范围分区和列表分区组合 87 7.3 语法示例 87 7.4 管理以及快速Roll-in、Roll-out 89 7.4.1 隔离工具 89 7.4.2 Roll-in和Roll-out 90 7.5 增强寻址能力 91 7.6 分区消除 91 7.7 索引范围分区数据 94 7.8 范围分区和群集索引 94 7.9 完整的形态:使用多维群集混合范围和哈希分区 95 7.10 小结 96 7.11 文献综述 97 第8章 多维群集 98 8.1 了解MDC 99 8.1.1 为什么群集这么有帮助 99 8.1.2 MDC 100 8.1.3 创建MDC表的语法格式 103 8.2 MDC的性能优势 103 8.3 不仅仅是查询性能:转入(Roll-in)和转出(Roll-out)的设计 105 8.4 MDC的查询优势实例 106 8.5 存储研究 107 8.6 设计MDC表 109 8.6.1 用粗糙度限制存储扩展 109 8.6.2 MDC利用的单调性 111 8.6.3 选择合适的维度 112 8.7 小结 113 8.8 文献综述 114 第9章 相互依赖的问题 115 9.1 强弱关联分析 115 9.2 过程优先的瀑布策略 117 9.3 效果优先的瀑布策略 117 9.4 变更管理的贪婪算法 118 9.5 流行的策略(鸡汤算法) 119 9.6 小结 120 9.7 文献综述 121 第10章 物理设计探索中的计数和数据抽样 122 10.1 应用物理数据库设计 122 10.1.1 索引设计的计数 124 10.1.2 物化视图设计的计数 124 10.1.3 多维群集的计数 125 10.1.4 无共享分区设计的计数 126 10.2 抽样功能 127 10.2.1 使用SQL抽样的好处 127 10.2.2 数据库设计的抽样 128 10.2.3 抽样类型 131 10.2.4 重复性抽样 133 10.3 一个明显的限制 133 10.4 小结 134 10.5 文献综述 135 第11章 查询执行计划和物理设计 137 11.1 从查询文本获取到结果集 137 11.2 查询执行计划究竟是什么样 140 11.3 非图形化的Explain 141 11.4 浏览查询执行计划以改进数据库设计 144 11.5 用于改进物理数据库设计的查询执行计划标示符 149 11.6 不更改数据库的探索 151 11.7 当查询优化器选择失误时强制执行 151 11.7.1 3种基本策略 151 11.7.2 查询提示简介 152 11.7.3 当SQL不能被修改时的查询提示 154 11.8 小结 156 11.9 文献综述 156 第12章 自动化物理数据库设计 157 12.1 如果假设分析、索引以及其他 158 12.2 Oracle、DB2以及SQL Server的自动化设计功能 161 12.2.1 IBM DB2 Design Advisor 162 12.2.2 Microsoft SQL Server Database Tuning Advisor 166 12.2.3 Oracle SQL Access Advisor 169 12.3 使用分组和泛化 171 12.4 可扩展性以及工作负荷的压缩 172 12.5 测试系统与生产系统之间的设计探索 175 12.6 出版文献中的一些实验性结果 176 12.7 索引选择 179 12.8 物化视图选择 180 12.9 多维群集选择 182 12.10 无共享分区 183 12.11 范围分区设计 184 12.12 小结 186 12.13 文献综述 186 第13章 实质探讨:服务器资源和拓扑 188 13.1 需要了解的有关CPU架构以及发展趋势的内容 189 13.1.1 CPU性能 189 13.1.2 使用并行处理加速系统的阿姆达尔定律 191 13.1.3 多核CPU 192 13.2 客户机服务器架构 192 13.3 对称多处理器与NUMA 194 13.3.1 对称多处理器与NUMA概述 194 13.3.2 缓存一致性与伪共享 195 13.4 服务器群集 195 13.5 关于操作系统的一般知识 195 13.6 存储系统 196 13.6.1 磁盘、轴以及分割 197 13.6.2 存储区域网络与网络连接存储设备 198 13.7 利用RAID使存储既可靠又快捷 199 13.7.1 RAID的历史 199 13.7.2 RAID 0 200 13.7.3 RAID 1 200 13.7.4 RAID 2以及RAID 3 201 13.7.5 RAID 4 202 13.7.6 RAID 5以及RAID 6 202 13.7.7 RAID 1+0 203 13.7.8 RAID 0+1 204 13.7.9 RAID 10+0以及RAID 5+0 204 13.7.10 哪种RAID最适合数据库的需求 205 13.8 在数据库服务器中均衡资源 206 13.9 可用性以及恢复策略 206 13.10 主内存与数据库调整 210 13.10.1 人工内存调整 210 13.10.2 自动内存调整 212 13.10.3 技术前沿:自调整内存管理的最新策略 215 13.11 小结 224 13.12 文献综述 224 第14章 决策支持、数据仓库和OLAP系统中的物理设计 226 14.1 什么是OLAP 226 14.2 维度层次结构 228 14.3 星型模式和雪花模式 229 14.4 仓库与集市 230 14.5 按比例扩大系统 233 14.6 在DSS、仓库以及OLAP设计中的注意事项 234 14.7 主流数据库服务器的使用语法以及例子 235 14.7.1 Oracle 235 14.7.2 Microsoft分析服务 236 14.8 小结 238 14.9 文献综述 238 第15章 逆规范化 240 15.1 有关规范化的基础知识 240 15.2 逆规范化的常见类型 243 15.2.1 一一对应关系中的实体 243 15.2.2 一对多关系中的实体 244 15.3 表逆规范化策略 246 15.4 逆规范化的例子 246 15.4.1 需求规格 247 15.4.2 逻辑设计 247 15.4.3 使用逆规范化进行模式优化 249 15.5 小结 252 15.6 文献综述 252 第16章 分布式数据分配 253 16.1 引言 253 16.2 分布式数据库分配 255 16.3 复制数据分配——“最有益站点”方法 256 16.4 渐进表分配方法 260 16.5 小结 261 16.6 文献综述 261 附录A 一个简单的性能模型数据库 263 A.1 IO时间成本——单独块访问 263 A.2 IO时间成本——表扫描和排序 263 A.3 网络时间延迟 264 A.4 CPU时间延迟 264 附录B Oracle Data Guard与DB2 HADR的数据库灾难恢复技术比较 265 B.1 在故障转移期间备用始终保持其“热”度 266 B.2 快速故障转移 266 B.3 地域分离 266 B.4 支持多种备用服务器 266 B.5 支持在备用服务器上的读取 267 B.6 主服务器在故障转移后可以很容易重建 267 参考书目 268 |
商品评论(0条)