内容提要 数据库领域的超级畅销书,世界级0racle大师 Jonathan Lewis的最新力作,也是近几年来Oracle领域最重要的著作之一,荣获2006年度Oracle杂志编辑选择大奖:自该书出版以来,受到无数读者、网友和专家的好评,被翻译成多种语言,成为众多中高级Oracle用户、DBA和开发人员的必看图书。 作者简介 Jonathan Lewis在过去的17年里一直专注于Oracle的研究。他因会议的主题演讲以及研讨会和教学而声名显赫,是全球Oracle领域公认的实力专家。现在,Jonathan是UKOUG(UK Oracle User Group)的负责人,并且为他们的Oracle Scene杂志定期撰稿。他所撰写的Practical Oracle 8i一书和创建的Http://www.jicomp.demon.co.uk网站获得了广泛好评。 编辑推荐 对于基于成本的优化器的执行方式,Jonathan有着深刻的见解,本书能够帮助DBA成为更好的设计者,还能帮助开发人员开发出更卓越的代码。 ——Thomas Kyte Oracle公司全球副总裁 基于成本的优化是数据库根据统计以预测的方式选择一种可能最快的执行方式。对执行性能高度敏感的应用使用CBO可以成倍加速SQL的执行速度。本书的日的在于解释优化器执行计算过程中的主要特性,以此分析计算成本,并确定SQL语句的执行计划,作者还深入剖析了优化器产生的成本与实际资源消耗之问的关系。 相信Jonathan Lewis对CB0精湛的阐述将使得Oracle DBA能够更好地管理数据库的执行,开发人员将能够更好地开发数据库应用程序。 ——罗铁庚 国防科技大学计算机学院教授 这是一本非常优秀的介绍Oracle系统的技术图书,该书以专家的视角对Oracle系统的基于成本的优化模型进行了深入浅出的分析和介绍。另外,这本书的内容组织和案例选用也别 具匠心,引人人胜。 ——闪四清 著名数据库专家 亲爱的读者: 在Oracle帮助论坛上我们经常会看到类似“为什么Oracle在有索引的情况下没有使用索引?”的问题。明明已经明确选择了索引列,排序也正常,也做了统计,空列也已经选出米了,但优化器就是没有自动使用索引。到底是什么地方出了问题? 如果本应该以最优的执行方式,而且也花费了非常多的时间想要优化器能够按照自己的方式来进行优化,但是优化器的执行却完全不是那么回事,那么我建议您读读这本书。学习完本书后,您将能够理解优化器的“思维”、知道错误是如何造成的以及导致错误的数据模式,从而可以节约在设计和SQL查错方面耗费的大量时间。 基于成本的优化器是包含了Oracle数据库工作模式的一组代码。在数据统计上运用这一模式,优化器将以最有效的方法将查询变换为有效的执行计划。遗憾的是,模式_并非总是完美无缺,统计也并不一定完美,从而导致执行的结果并不理恕。 任《基于成本的Oracle优化法则》一书中(本系列三本中的第一本),我们讨论了最通用的模式,优化器如何基于统计信息进行优化,以及为什么有时候优化的结果不尽如人意。这样,通过调整模式或创建出更切合实际的统计信息,您就可以纵览整个问题而不必拘泥于单个SQL语句。 目录 第1章 成本的含义 1.1 优化器选项 1.2 成本的定义 1.3 变换和成本计算 1.4 所见未必即所得 1.5 本章小结 1.6 测试用例 第2章 表扫描 2.1 入门 2.2 提高 2.2.1 块大小的影响 2.2.2 CPU成本计算 2.2.3 CPU成本计算的作用 2.3 BCHR 2.4 并行执行 2.5 索引快速全扫描 2.6 分区 2.7 本章小结 2.8 测试用例 第3章 单表选择率 3.1 入门 3.2 空值 3.3 使用列表 3.4 区间谓词 3.5 双谓词 3.6 多谓词的相关问题 3.7 本章小结 3.8 测试用例 第4章 简单B树访问 4.1 索引成本计算的基础知识 4.2 入门 4.2.1 有效索引选择率 4.2.2 有效表选择率 4.2.3 clustering_factor 4.2.4 综合计算 4.2.5 扩展算法 4.2.6 3个选择率 4.3 CPU成本计算 4.4 待处理的零碎问题 4.5 本章小结 4.6 测试用例 第5章 群集因子 5.1 基本示例 5.1.1 减少表争用(多个自由列表) 5.1.2 减少叶块的争用(反转键索引,ReverseKey Index) 5.1.3 减少表的争用(ASSM) 5.1.4 减少RAC中的争用(自由列表群) 5.2 列顺序 5.3 额外的列 5.4 校正统计信息 5.4.1 sys_op_countchg ()技术 5.4.2 非正式策略 5.5 待处理的零碎问题 5.6 本章小结 5.7 测试用例 第6章 选择率的相关问题 6.1 不同的数据类型 6.1.1 日期类型 6.1.2 字符类型 6.1.3 愚蠢的数据类型 6.2 前导零 6.3 致命的默认值 6.4 离散数据的风险 6.5 令人惊奇的sysdate …… 第7章 直方图 第8章 位图索引 第9章 查询变换 第10章 连接基数 第11章 嵌套循环 第12章 散列连接 第13章 排序与归并连接 第14章 10053 trace文件 附录A 升级问题 附录B 优化器参数 |