第1部分 影响数据读取的因素 1
第1章 数据的存储结构和特征 1
1.1 表和索引分离型 5
1.1.1 堆表的结构 5
1.1.2 聚簇因子(Cluster Factor) 10
1.1.3 影响读取的因素 13
1.1.3.1 大范围数据读取的处理方案 14
1.1.3.2 提高聚簇因子的手段 17
1.2 索引组织表(Index-Organized Table) 19
1.2.1 堆表和索引组织表的比较 19
1.2.2 索引组织表的结构和特征 20
1.2.3 逻辑ROWID和物理猜(Physical Guess) 22
1.2.4 溢出区(Overflow Area) 24
1.2.5 索引组织表的创建 25
1.3 聚簇表 26
1.3.1 聚簇表的概念 27
1.3.2 单表聚簇 29
1.3.3 复合表聚簇 31
1.3.4 聚簇表的代价 34
1.3.5 哈希聚簇 39
第2章 索引的类型和特征 43
2.1 B-Tree索引 44
2.1.1 B-Tree索引的结构 44
2.1.2 B-Tree索引的应用 47
2.1.3 反向键索引 52
2.2 位图索引 53
2.2.1 位图索引的形成背景 54
2.2.2 位图索引的结构和特征 55
2.2.3 位图索引的读取 57
2.3 基于自定义的函数索引 60
2.3.1 基于自定义的函数索引的概念和结构 60
2.3.2 基于自定义函数索引的约束 61
2.3.3 基于自定义函数索引的灵活运用 64
第3章 SQL的执行计划(Explain Plan) 74
3.1 SQL和优化器 75
3.1.1 优化器的作用和人的作用 77
3.1.2 优化器的类型 80
3.1.2.1 基于规则的优化器 82
3.1.2.2 基于成本的优化器 86
3.1.2.3 优化器目标的选择 93
3.1.2.4 执行计划的固定化方案 97
3.1.2.5 优化器的局限 103
3.1.3 优化器的最优化步骤 106
3.1.4 查询语句的转换 112
3.1.4.1 传递性规则 113
3.1.4.2 视图合并(View Merging) 116
3.1.4.3 查看用户定义的绑定变量 122
3.1.5 开发者的作用 123
3.2 执行计划的类型 126
3.2.1 扫描的基本类型 126
3.2.1.1 全表扫描 127
3.2.1.2 ROWID扫描 132
3.2.1.3 索引扫描 133
3.2.1.4 B-Tree聚簇读取(Cluster Access) 138
3.2.1.5 哈希聚簇读取(Hash Cluster Access) 139
3.2.1.6 采样表扫描(Sample Table Scan) 140
3.2.2 表连接的执行计划 143
3.2.2.1 嵌套循环连接(Nested Loops Join) 143
3.2.2.2 排序合并连接(Sort Merge Join) 146
3.2.2.3 哈希连接(Hash Join) 148
3.2.2.4 半连接(Semi Join) 149
3.2.2.5 笛卡儿连接 151
3.2.2.6 外连接(Outer Join) 154
3.2.2.7 索引连接 159
3.2.3 其他运算方式的执行计划 161
3.2.3.1 IN-List迭代执行计划 162
3.2.3.2 连锁执行计划 163
3.2.3.3 远程执行计划 165
3.2.3.4 排序操作执行计划 168
3.2.3.5 集合操作执行计划 171
3.2.3.6 COUNT(STOPKEY)执行计划 174
3.2.4 位图(Bitmap)执行计划 175
3.2.4.1 各种条件运算符的位图执行计划 176
3.2.4.2 子查询执行计划 182
3.2.4.3 与B-Tree索引相结合的执行计划 184
3.2.5 其他特殊处理的执行计划 185
3.2.5.1 递归展开(Recursive Implosion)执行计划 186
3.2.5.2 修改子查询执行计划 191
3.2.5.3 特殊类型的执行计划 193
3.3 执行计划的控制 203
3.3.1 提示的活用准则 204
3.3.2 使用提示实现最优化目标 206
3.3.3 使用提示改变表连接顺序 207
3.3.4 表连接方式选择过程中提示的使用 208
3.3.5 并行操作中提示的使用 209
3.3.6 数据读取方法选择中提示的使用 211
3.3.7 查询转换(Query Transformation)过程中提示的使用 214
3.3.8 其他提示 216
第4章 构建索引的战略方案 221
4.1 索引的选定准则 222
4.1.1 不同类型表的索引应用准则 223
4.1.2 离散度和损益分界点 227
4.1.3 索引合并和组合索引的比较 229
4.1.4 组合索引的特征 232
4.1.5 组合索引中列序的决定准则 239
4.1.6 索引选定步骤 242
4.2 决定聚簇类型的准则 263
4.2.1 全局性聚簇 263
4.2.2 局部性聚簇 265
4.2.3 单表聚簇 266
4.2.4 单位聚簇大小的决定 267
4.2.5 确保聚簇被使用的措施 270
第2部分 最优化数据读取方案 274
第5章 局部范围扫描(Partial Range Scan) 274
5.1 局部范围扫描的概念 277
5.2 局部范围扫描的应用原则 282
5.2.1 局部范围扫描的条件 282
5.2.2 不同优化器模式下的局部范围扫描 285
5.3 提高局部范围扫描执行速度的原理 286
5.4 向局部范围扫描引导的方法 290
5.4.1 利用访问路径实现对Sort的代替 290
5.4.2 只使用索引的局部范围扫描 293
5.4.3 MIN、MAX的处理 294
5.4.4 FILTER型局部范围扫描 299
5.4.5 ROWNUM的灵活运用 301
5.4.6 利用嵌套视图的局部范围扫描 307
5.4.7 利用函数的局部范围扫描 309
5.4.8 利用查询语句二元化特性的局部范围扫描 317
5.4.9 Web留言板中的局部范围扫描 319
第6章 表连接的最优化方案 337
6.1 JOIN和LOOP QUERY的比较 340
6.1.1 全部范围扫描方式下的比较 342
6.1.2 局部范围扫描方式下的比较 350
6.2 连接条件状态对表连接的影响 352
6.2.1 连接条件正常 354
6.2.2 连接条件一边异常 359
6.2.3 连接条件两边异常 362
6.3 各种表连接方式的特征及活用方案 366
6.3.1 嵌套循环连接 367
6.3.1.1 嵌套循环连接的基本概念 368
6.3.1.2 嵌套循环连接顺序的决定 371
6.3.2 排序合并连接 380
6.3.3 嵌套循环连接和排序合并连接的比较 384
6.3.4 哈希连接(Hash Join) 388
6.3.4.1 IN-MEMORY哈希连接 393
6.3.4.2 延迟哈希连接 396
6.3.5 半连接(Semi Join) 399
6.3.5.1 半连接的概念和特征 400
6.3.5.2 半连接的执行计划 402
6.3.6 星型(Star)连接 418
6.3.7 星变形(Star Transformation)连接 426
6.3.8 位图连接索引 438
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《幼儿园创意美术主题活动方案 下学期》王燕媚 2017
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《穿越数据的迷宫 数据管理执行指南》Laura Sebastian-Coleman 2020
- 《大数据环境下的信息管理方法技术与服务创新丛书 俄罗斯档案事业改革与发展研究》徐胡乡责编;肖秋会 2019
- 《Access数据库系统设计与应用教程》李勇帆,廖瑞华主编 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《中国电子政务发展报告 2018-2019 数字中国战略下的政府管理创新》何毅亭主编 2019
- 《陶瓷工业节能减排技术丛书 陶瓷工业节能减排与污染综合治理》罗民华著 2017