您好,欢迎来到聚文网。 登录 免费注册
基于成本的ORACLE优化法则

基于成本的ORACLE优化法则

  • 字数: 670000
  • 装帧: 平装
  • 出版社: 清华大学出版社
  • 作者: (美)刘易斯 著
  • 出版日期: 2007-07-01
  • 商品条码: 9787302153894
  • 版次: 0
  • 开本: 16开
  • 页数: 0
  • 出版年份: 2007
定价:¥58 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
    1.此书荣获2006年度业界最高荣誉奖项——Oracle杂志编辑选择奖;     2.世界级Oracle大师Jonathan Lewis的最新力作;..     3.该书以专家的视角对Oracle系统的基于成本的优化模型进行了深入浅出的分析和介绍;     4.近几年来Oracle领域最重要的著作之一,受到无数读者、网友和专家的好评。...     ★数据库领域的超级畅销书,世界级Oracle大师Jonathan Lewis的最新力作!     ★荣获2006年年度Oracle杂志编辑选择大奖!     ★受到无数读者、网友和专家的好评,被翻译成多种语言,成为众多中高级Oracle用户、DBA和开发人员的必看图书! 对于基于成本的优化器的执行方式,Jonathan有着深刻的见解,本书能够帮助DBA成为更好的设计者,还能帮助开发人员开发出更卓越的代码。 ——Thomas Kyte Oracle公司全球副总裁 基于成本的优化是数据库根据统计以预测的方式选择一种可能最快的执行方式。对执行性能高度敏感的应用使用CBO可以成倍加速SQL的执行速度。本书的日的在于解释优化器执行计算过程中的主要特性,以此分析计算成本,并确定SQL语句的执行计划,作者还深入剖析了优化器产生的成本与实际资源消耗之问的关系。 相信Jonathan Lewis对CB0精湛的阐述将使得Oracle DBA能够更好地管理数据库的执行,开发人员将能够更好地开发数据库应用程序。 ——罗铁庚 国防科技大学计算机学院教授 这是一本非常优秀的介绍Oracle系统的技术图书,该书以专家的视角对Oracle系统的基于成本的优化模型进行了深入浅出的分析和介绍。另外,这本书的内容组织和案例选用也别 具匠心,引人人胜。 ——闪四清 著名数据库专家 亲爱的读者: 在Oracle帮助论坛上我们经常会看到类似“为什么Oracle在有索引的情况下没有使用索引?”的问题。明明已经明确选择了索引列,排序也正常,也做了统计,空列也已经选出米了,但优化器就是没有自动使用索引。到底是什么地方出了问题? 如果本应该以最优的执行方式,而且也花费了非常多的时间想要优化器能够按照自己的方式来进行优化,但是优化器的执行却完全不是那么回事,那么我建议您读读这本书。学习完本书后,您将能够理解优化器的“思维”、知道错误是如何造成的以及导致错误的数据模式,从而可以节约在设计和SQL查错方面耗费的大量时间。 基于成本的优化器是包含了Oracle数据库工作模式的一组代码。在数据统计上运用这一模式,优化器将以最有效的方法将查询变换为有效的执行计划。遗憾的是,模式_并非总是完美无缺,统计也并不一定完美,从而导致执行的结果并不理恕。 任《基于成本的Oracle优化法则》一书中(本系列三本中的第一本),我们讨论了最通用的模式,优化器如何基于统计信息进行优化,以及为什么有时候优化的结果不尽如人意。这样,通过调整模式或创建出更切合实际的统计信息,您就可以纵览整个问题而不必拘泥于单个SQL语句。     我们日常生活的很多方面都离不开数据库的支持,从银行业务、电话缴费乃至小型家庭账本系统都能看到数据库的影子。近年来,数据库技术的发展非常迅速,有关数据库的理论和方法是计算机科学教育领域必不可少的内容。Oracle公司是数据库技术领域的佼佼者,其主打的商用数据库管理系统Oracle经过多年的发展,目前最新的版本为Oracle 10g。市场上关于Oracle的书籍林林总总,各有千秋,但其中很大一部分都偏重于介绍Oracle的具体应用。     Arthur C. Clarke曾经说过,任何足够高级的技术几乎都和魔术没有什么区别。我完全相信这种说法是正确的。在此之后,有人也说过,任何知识足够丰富的技术人员几乎与魔术师没有什么区别。牢记这一点,眼下的这本书实际上就是讲“魔术”的。但是,从我认识本书的作者Jonathan Lewis那天起(我们认识有11年了,从Google回溯到新闻组时代),他就从来不满足于做一名“魔术师”。他乐于搞清楚某件事情为什么是按照那种方式执行的。因此,他的书都是关于“理解”的。更为准确地说,都是关于对Oracle中基于成本的优化器(Cost Based Optimizer,CBO)、它的工作方式以及它的工作原理的理解。
内容简介
数据库领域的超级畅销书,世界级Oracle大师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网站获得了广泛好评。
目录
第1章 成本的含义 1 1.1 优化器选项 2 1.2 成本的定义 3 1.3 变换和成本计算 5 1.4 所见未必即所得 8 1.5 本章小结 8 1.6 测试用例 8 第2章 表扫描 9 2.1 入门 10 2.2 提高 14 2.2.1 块大小的影响 14 2.2.2 CPU成本计算 16 2.2.3 CPU成本计算的作用 22 2.3 BCHR 24 2.4 并行执行 27 2.5 索引快速全扫描 30 2.6 分区 32 2.7 本章小结 37 2.8 测试用例 37 第3章 单表选择率 39 3.1 入门 40 3.2 空值 42 3.3 使用列表 43 3.4 区间谓词 48 3.5 双谓词 52 3.6 多谓词的相关问题 54 3.7 本章小结 56 3.8 测试用例 57 第4章 简单B树访问 59 4.1 索引成本计算的基础知识 60 4.2 入门 61 4.2.1 有效索引选择率 63 4.2.2 有效表选择率 64 4.2.3 clustering_factor 65 4.2.4 综合计算 67 4.2.5 扩展算法 68 4.2.6 3个选择率 74 4.3 CPU成本计算 78 4.4 待处理的零碎问题 80 4.5 本章小结 81 4.6 测试用例 81 第5章 群集因子 83 5.1 基本示例 84 5.1.1 减少表争用 (多个自由列表) 86 5.1.2 减少叶块的争用(反转键 索引,ReverseKey Index) 89 5.1.3 减少表的争用(ASSM) 92 5.1.4 减少RAC中的争用 (自由列表群) 95 5.2 列顺序 96 5.3 额外的列 99 5.4 校正统计信息 101 5.4.1 sys_op_countchg()技术 101 5.4.2 非正式策略 105 5.5 待处理的零碎问题 106 5.6 本章小结 107 5.7 测试用例 107 第6章 选择率的相关问题 109 6.1 不同的数据类型 110 6.1.1 日期类型 110 6.1.2 字符类型 110 6.1.3 愚蠢的数据类型 112 6.2 前导零 116 6.3 致命的默认值 117 6.4 离散数据的风险 119 6.5 令人惊奇的sysdate 123 6.6 函数表示 125 6.7 相互关联的列 126 6.7.1 动态采样 129 6.7.2 优化器配置文件 132 6.8 传递闭包 133 6.9 产生约束的谓词 136 6.10 本章小结 139 6.11 测试用例 139 第7章 直方图 141 7.1 入门 142 7.2 普通直方图 147 7.2.1 直方图和绑定变量 147 7.2.2 Oracle何时忽略直方图 149 7.3 频率直方图 152 7.3.1 伪造频率直方图 155 7.3.2 注意事项 156 7.4 “高度均衡”直方图 157 7.5 重新审视数据问题 163 7.5.1 愚蠢的数据类型 163 7.5.2 危险的默认值 166 7.6 本章小结 167 7.7 测试用例 168 第8章 位图索引 169 8.1 入门 170 8.1.1 索引组件 174 8.1.2 表组件 175 8.2 位图合并 177 8.2.1 较低的基数 179 8.2.2 空值列 182 8.3 CPU成本计算 185 8.4 一些有趣的示例 186 8.4.1 多列索引 187 8.4.2 位图连接索引 187 8.4.3 位图转换 188 8.5 本章小结 191 8.6 测试用例 192 第9章 查询变换 193 9.1 入门 194 9.2 过滤 197 9.2.1 过滤优化 200 9.2.2 标量子查询 202 9.2.3 子查询分解 208 9.2.4 复杂视图合并 213 9.2.5 推入谓词 215 9.3 一般子查询 216 9.3.1 子查询参数 218 9.3.2 分类 219 9.3.3 半连接 224 9.3.4 反连接 226 9.3.5 反连接异常 228 9.3.6 Null和Notin 229 9.3.7 有序提示 231 9.4 星型变换连接 232 9.5 星型连接 237 9.6 展望 239 9.7 本章小结 240 9.8 测试用例 241 第10章 连接基数 243 10.1 基本的连接基数 244 10.2 实际SQL的连接基数 249 10.3 扩展和异常情况 252 10.3.1 使用范围的连接 252 10.3.2 不等于 253 10.3.3 重叠 256 10.3.4 直方图 257 10.3.5 传递闭包 260 10.4 三表连接 264 10.5 空值 267 10.6 实现问题 270 10.7 困难之处 274 10.8 特性 276 10.9 另一观点 278 10.10 本章小结 279 10.11 测试用例 279 第11章 嵌套循环 281 11.1 基本机制 282 11.2 实际示例 286 11.3 完备性检查 287 11.4 本章小结 291 11.5 测试用例 291 第12章 散列连接 293 12.1 入门 294 12.1.1 最优散列连接 297 12.1.2 一遍散列连接 299 12.1.3 多遍散列连接 304 12.2 追踪文件 308 12.2.1 event 10104 308 12.2.2 event 10053 309 12.3 难点 311 12.3.1 传统成本计算 311 12.3.2 现代成本计算 312 12.4 比较 313 12.5 多表连接 318 12.6 本章小结 321 12.7 测试用例 321 第13章 排序与归并连接 323 13.1 入门 324 13.1.1 内存的使用 329 13.1.2 CPU的使用 330 13.1.3 sort_area_retained_size 333 13.1.4 pga_aggregate_target 334 13.1.5 实际I/O 337 13.2 排序的成本 339 13.3 比较 343 13.4 归并连接 346 13.4.1 归并机制 347 13.4.2 无最初排序的归并连接 351 13.4.3 笛卡尔归并连接 352 13.5 聚集及其他 354 13.5.1 索引 358 13.5.2 集合运算 359 13.6 最后一次提醒 363 13.7 本章小结 365 13.8 测试用例 366 第14章 10053 trace文件 367 14.1 查询 368 14.2 执行计划 369 14.3 环境 370 14.4 追踪文件 371 14.4.1 参数设置 372 14.4.2 查询块 375 14.4.3 存储统计信息 376 14.4.4 单表 378 14.4.5 完备性检查 379 14.4.6 一般计划 380 14.4.7 Join order[1] 380 14.4.8 Join order[2] 386 14.4.9 Join order[3] 387 14.4.10 Join order[4] 388 14.4.11 Join order[5] 388 14.4.12 Join order[6] 392 14.4.13 Join order[7] 392 14.4.14 Join order[8] 395 14.4.15 Join order[9] 397 14.4.16 Join order[10] 398 14.4.17 Join order[11] 398 14.4.18 Join order[12] 401 14.4.19 Join order[13] 404 14.4.20 Join order[14] 405 14.4.21 Join order[15] 406 14.4.22 Join order[16] 407 14.4.23 Join order[17] 407 14.4.24 Join order[18] 409 14.5 连接评估小结 410 14.6 测试用例 413 附录A 升级问题 415 A.1 dbms_stats 416 A.2 频率直方图 417 A.3 CPU成本计算 417 A.4 舍入误差 417 A.5 绑定变量窥视 418 A.6 连接间的空值 418 A.7 B树到位图的转换 418 A.8 索引跳跃扫描 419 A.9 AND-Equal 419 A.10 索引散列连接 420 A.11 修正的In-List 420 A.12 传递闭包 420 A.13 sysdate算术修正 421 A.14 对空值的索引 422 A.15 pga_aggregate_target 422 A.16 排序 422 A.17 分组 423 A.18 完备性检查 423 A.19 超出界限的情况 423 A.20 关于类型 423 A.21 optimizer_mode 424 A.22 降序索引 424 A.23 复杂视图合并 424 A.24 非嵌套子查询 424 A.25 标量和过滤子查询 425 A.26 并行查询策略的两次变化 425 A.27 动态采样 425 A.28 临时表 425 A.29 字典统计 426 附录B 优化器参数 427 B.1 optimizer_features_enable 428 B.2 10053 trace文件 430 B.3 v$sql_optimizer_env 435

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网