书籍详情

基于成本的Oracle优化法则

基于成本的Oracle优化法则

作者:(美)刘易斯 著,赵恒,李正仪 译

出版社:清华大学出版社

出版时间:2007-07-01

ISBN:9787302153894

定价:¥58.00

购买这本书可以去
内容简介
  ★数据库领域的超级畅销书,世界级Oracle大师Jonathan Lewis的最新力作!★荣获2006年年度Oracle杂志编辑选择大奖!★受到无数读者、网友和专家的好评,被翻译成多种语言,成为众多中高级Oracle用户、DBA和开发人员的必看图书! [精彩试读一][精彩试读二] [精彩评论]对于基于成本的优化器的执行方式,Jonathan有着深刻的见解,本书能够帮助DBA成为更好的设计者,还能帮助开发人员开发出更卓越的代码。—— Thomas KyteOracle公司全球副总裁 基于成本的优化是数据库根据统计以预测的方式选择一种可能最快的执行方式。对执行性能高度敏感的应用使用CBO可以成倍加速SQL的执行速度。本书的目的在于解释优化器执行计算过程中的主要特性,以此分析计算成本,并确定SQL语句的执行计划,作者还深入剖析了优化器产生的成本与实际资源消耗之间的关系。相信Jonathan Lewis对CBO精湛的阐述将使得Oracle DBA能够更好地管理数据库的执行,开发人员将能够更好地开发数据库应用程序。 ——罗铁庚国防科技大学计算机学院教授这是一本非常优秀的介绍Oracle系统的技术图书,该书以专家的视角对Oracle系统的基于成本的优化模型进行了深入浅出的分析和介绍。另外,这本书的内容组织和案例选用也别具匠心、引人入胜。——闪四清著名数据库专家
作者简介
  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



猜您喜欢

读书导航