基础篇 2
第1章 整体架构 2
1.1实例 2
1.2数据库 3
1.3整体架构图解 5
第2章 内存架构 7
2.1系统全局区 7
2.1.1共享池 7
2.1.2数据缓冲 8
2.1.3重做日志缓冲 8
2.1.4系统全局区相关信息 9
2.2程序全局区 9
2.2.1会话区 9
2.2.2 SQL工作区 10
2.2.3程序全局区的相关信息 10
第3章 存储架构 11
3.1块 11
3.2区间 13
3.3段 14
3.4表空间 14
第4章 对象类型 17
4.1表 17
4.1.1表的概念 17
4.1.2表的注解 17
4.1.3表与段 18
4.1.4表分区 19
4.2索引 21
4.2.1索引的概念 21
4.2.2索引的注解 21
4.2.3本地索引和全局索引 24
4.2.4 B*Tree索引组织结构 25
4.2.5位图索引 26
4.3簇 27
4.3.1簇的概念 27
4.3.2簇注的解 27
4.4视图 27
4.4.1视图的概念 27
4.4.2视图的注解 28
4.5物化视图 28
4.5.1物化视图的概念 28
4.5.2物化视图的注解 28
4.6同义词 29
4.6.1同义词的概念 29
4.6.2同义词的注解 29
4.7序列 30
4.7.1序列的概念 30
4.7.2序列的注解 30
4.8索引组织表 30
4.8.1索引组织表的概念 30
4.8.2索引组织表的注解 31
4.9过程和函数 31
4.9.1过程和函数的概念 31
4.9.2过程和函数的注解 32
4.10触发器 32
4.10.1触发器的概念 32
4.10.2触发器的注解 33
4.11包 33
4.11.1包的概念 33
4.11.2包注解 33
4.12约束 34
4.12.1约束的概念 34
4.12.2约束的注解 34
第5章 事务 35
5.1事务的概念 35
5.2事务的特性 36
5.3 ANSMSO SQL标准定义的事务隔离级别 36
5.4 Oracle支持的事务隔离级别 36
5.5事务的开始和结束 37
5.6事务的相关信息 37
第6章 执行计划 39
6.1执行计划的概念 39
6.2系统统计数据 40
6.3对象统计数据 41
6.4扩展统计数据 42
6.4.1扩展统计数据的概念 42
6.4.2扩展统计数据的限制 42
6.5执行计划的获取方法 42
6.5.1 GUI工具 43
6.5.2 autotrace的功能 45
6.5.3 DBMS XPLAN包 47
6.5.4 SQL查询方法 55
6.5.5跟踪方法 56
6.6执行计划阅读及分析方法 58
第7章 执行计划操作与分析 59
7.1表相关操作 59
7.2索引相关操作 65
7.3物化视图相关操作 72
7.4连接相关操作 75
7.5分区相关操作 91
7.6并行相关操作 98
7.6.1并行相关的概念 98
7.6.2并行相关操作示例 100
7.7排序相关操作 111
7.8视图相关操作 116
7.9集合相关操作 118
7.10位图相关操作 121
7.11聚合相关操作 126
7.12分析函数相关操作 127
7.13层级相关操作 130
7.14 DDL及DML相关操作 134
7.15 其他相关操作 142
第8章 调优相关数据项 150
8.1执行计划数据项 150
8.2性能统计信息数据项 151
第9章 确定瓶颈 153
9.1分析Cost方法 153
9.1.1方法说明 153
9.1.2分析要点 153
9.1.3方法优势 154
9.1.4方法劣势 154
9.2分析Trace结果方法 154
9.2.1方法说明 154
9.2.2分析要点 157
9.2.3方法优势 157
9.2.4方法劣势 157
9.3目测分析方法 157
9.3.1方法说明 157
9.3.2分析要点 158
9.3.3方法优势 158
9.3.4方法劣势 158
第10章 解决问题 159
10.1合理使用索引 159
10.1.1索引应用的一般原则 161
10.1.2索引应用的认识误区 162
10.2合理使用表分区 163
10.2.1合理选择表分区类型 163
10.2.2合理选择索引类型 164
10.3收集和维护统计数据 164
10.3.1自动收集统计数据 164
10.3.2手动收集和维护统计数据 166
10.3.3收集和维护扩展统计数据 169
10.4 SQL语句改写 170
10.4.1消除视图 170
10.4.2标量子查询改为外连接 172
10.4.3 update改为merge into 173
10.4.4正确使用分析函数 175
10.4.5 with as去除多次扫描 176
10.4.6 union改为or 178
10.4.7 or改为union 179
10.4.8 in改为join 181
10.4.9 in改为exists 182
10.4.10 not in改为not exists 183
10.4.11 not exists改为not in 184
10.4.12 exists改为join 185
10.4.13 not exists改为join 187
10.4.14 join改为exists 188
10.4.15 join改为not exists 189
10.4.16改写为集合运算符 190
10.5正确使用Hint 191
10.5.1 Hint的概念及场景 191
10.5.2 Hint的具体语法 192
10.5.3常用Hint 193
10.6数据库开发常识 220
10.6.1判断SQL性能的标准 220
10.6.2索引相关误区 220
10.6.3慎用多视图连接 222
10.6.4慎用循环Delete 222
10.6.5考量绑定变量的应用 223
10.6.6减少参与连接的表数 223
10.6.7慎用触发器 223
10.6.8慎用临时表 224
10.6.9表连接写法选择和排序 225
实践篇 228
第11章 案例解析 228
11.1案例一 228
11.1.1问题背景 228
11.1.2问题描述 229
11.1.3问题分析及解决 230
11.1.4优化效果 233
11.2案例二 235
11.2.1问题背景 235
11.2.2问题描述 235
11.2.3问题分析及解决 237
11.2.4优化效果 241
11.3案例三 242
11.3.1问题背景 242
11.3.2问题描述 244
11.3.3问题分析及解决 245
11.3.4优化效果 247
11.4案例四 248
11.4.1问题背景 248
11.4.2问题描述 249
11.4.3问题分析及解决 251
11.4.4优化效果 254
11.5案例五 255
11.5.1问题背景 255
11.5.2问题描述 255
11.5.3问题分析及解决 256
11.5.4优化效果 258
11.6案例六 259
11.6.1问题背景 259
11.6.2问题描述 259
11.6.3问题分析及解决 262
11.6.4优化效果 266
11.7案例七 267
11.7.1问题背景 267
11.7.2问题描述 268
11.7.3问题分析及解决 271
11.7.4优化效果 274
11.8案例八 277
11.8.1问题背景 277
11.8.2问题描述 277
11.8.3问题分析及解决 281
11.9案例九 282
11.9.1问题背景 282
11.9.2问题描述 286
11.9.3问题分析及解决 288
11.9.4优化效果 289
11.10案例十 290
11.10.1问题背景 290
11.10.2问题描述 291
11.10.3问题分析及解决 292
11.10.4优化效果 295