推荐序
前 言
第一部分 引入篇
第0章 引言 2
第1章 与SQL优化相关的几个案例 4
案例1 一条SQL引发的“血案” 4
案例2 糟糕的结构设计带来的问题 6
案例3 规范SQL写法好处多 9
案例4 “月底难过” 11
案例5 COUNT(*)到底能有多快 13
案例6 “抽丝剥茧”找出问题所在 17
第二部分 原理篇
第2章 优化器与成本 22
2.1 优化器 22
2.1.1 基于规则的优化器 23
2.1.2 基于成本的优化器 25
2.1.3 对比两种优化器 26
2.1.4 优化器相关参数 27
2.1.5 优化器相关Hint 30
2.2 成本 35
2.2.1 基本概念 35
2.2.2 计算公式 36
2.2.3 计算示例 36
第3章 执行计划 40
3.1 概述 40
3.1.1 什么是执行计划 40
3.1.2 库执行计划存储方式 42
3.2 解读执行计划 43
3.2.1 执行顺序 43
3.2.2 访问路径 45
3.3 执行计划操作 45
3.3.1 查看执行计划 45
3.3.2 固定执行计划 72
3.3.3 修改执行计划 80
第4章 统计信息 84
4.1 统计信息分类 84
4.1.1 系统统计信息 84
4.1.2 对象统计信息 87
4.1.3 数据字典统计信息 109
4.1.4 内部对象统计信息 109
4.2 统计信息操作 109
4.2.1 系统统计信息 110
4.2.2 对象统计信息 111
4.2.3 数据字典统计信息 115
4.2.4 内部对象统计信息 115
第5章 SQL解析与游标 116
5.1 解析步骤 116
5.2 解析过程 117
5.3 游标示例 119
第6章 绑定变量 122
6.1 使用方法 122
6.2 绑定变量与解析 124
6.3 游标共享 129
第7章 SQL优化相关对象 131
7.1 表 131
7.2 字段 137
7.3 索引 140
7.4 视图 148
7.5 函数 149
7.6 数据链(DB_LINK) 150
第8章 SQL优化相关存储结构 153
8.1 表空间 153
8.2 段 154
8.3 区 155
8.4 块 156
第9章 特有SQL 160
9.1 MERGE 160
9.2 INSERT ALL 162
9.3 WITH 162
9.4 CONNECT BY /START WITH 163
第三部分 SQL篇
第10章 查询转换 166
10.1 查询转换的分类及说明 166
10.2 查询转换—子查询类 167
10.3 查询转换—视图类 174
10.4 查询转换—谓词类 178
10.5 查询转换—消除类 180
10.6 查询转换—其他 181
第11章 访问路径 189
11.1 表访问路径 189
11.1.1 全表扫描 189
11.1.2 ROWID扫描 193
11.1.3 采样扫描 194
11.2 B树索引访问路径 195
11.3 位图索引访问路径 205
11.4 其他访问路径 210
第12章 表间关联 215
12.1 关联关系 215
12.2 表关联实现方法 218
12.3 嵌套循环连接 220
12.4 排序合并连接 226
12.5 哈希连接 232
12.6 其他连接方式 238
第13章 半连接与反连接 243
13.1 半连接 243
13.2 反连接 246
第14章 排序 250
14.1 引发排序的操作 250
14.2 避免和减少排序 251
14.2.1 优化原则及基本方法 251
14.2.2 避免排序的示例 252
14.3 排序过程及内存使用 255
14.4 执行计划中的“Sort” 258
第15章 子查询 262
15.1 处理方式 262
15.2 子查询分类 263
15.2.1 按照语法分类 263
15.2.2 按照谓词分类 263
15.2.3 示例 264
15.3 子查询优化 266
15.4 子查询特殊问题 272
15.4.1 空值问题 272
15.4.2 OR问题 274
15.4.3 [NOT] IN/EXISTS问题 275
第16章 并行 276
16.1 并行操作 276
16.1.1 并行查询 277
16.1.2 并行DML 280
16.1.3 并行DDL 283
16.2 并行级别 286
16.3 并行原理 286
16.3.1 从属进程 286
16.3.2 粒度 287
第四部分 实践篇
第17章 数据库设计开发规范 292
17.1 Oracle结构设计规范 292
17.1.1 建模工具 292
17.1.2 命名规范 294
17.1.3 数据类型 296
17.1.4 表设计 297
17.1.5 字段设计 299
17.1.6 约束设计 299
17.1.7 索引设计 300
17.1.8 视图设计 303
17.1.9 包设计 303
17.1.10 范式与逆范式 304
17.1.11 其他设计问题 305
17.2 Oracle开发规范 306
17.2.1 书写规范 306
17.2.2 编码规范 307
17.2.3 注释规范 307
17.2.4 语法规范 308
17.3 MySQL结构设计规范 312
17.3.1 命名规则 313
17.3.2 使用原则 314
17.3.3 规模规则 315
17.3.4 字段规则 315
17.3.5 索引规则 319
17.3.6 字符集 321
17.3.7 逆范式设计 321
17.4 MySQL开发规范 322
17.4.1 基本原则 322
17.4.2 语句规范 322
第18章 架构设计之数据库承载力评估 327
18.1 评估工作 327
18.1.1 建立性能基线 327
18.1.2 建立业务压力模型 329
18.1.3 模拟压力测试 331
18.2 优化步骤 331
第19章 数据库画像 335
19.1 你了解你的数据库吗 335
19.2 画像设计思路 336
19.3 画像报告解读 336
19.3.1 概要信息 336
19.3.2 空间信息 336
19.3.3 对象信息 337
19.3.4 访问特征 339
19.3.5 资源消耗 341
19.3.6 SQL语句 342
第20章 数据库审核平台实践:功能 343
20.1 背景说明 343
20.2 平台选型 347
20.3 平台定位 348
20.4 平台原理 349
20.5 推进方法 350
第21章 数据库审核平台实践:实现 352
21.1 平台设计 352
21.2 流程图 354
21.3 数据结构 355
21.4 主要模块 356
21.4.1 数据采集 356
21.4.2 规则解析 358
21.4.3 系统管理 364
21.5 审核结果展示 366
第22章 数据库审核平台实践:规则 370
22.1 对象级 370
22.1.1 Oracle 370
22.1.2 MySQL 379
22.2 执行计划级 384
22.2.1 Oracle 384
22.2.2 MySQL 389
22.3 执行特征级 392
22.3.1 Oracle 392
22.3.2 MySQL 394
22.4 文本级 395
22.4.1 Oracle 395
22.4.2 MySQL 400
附录A 常用技巧 401
附录B SQL优化参数 406
附录C SQL优化数据字典 409
附录D SQL优化等待事件 411
附录E SQL优化提示 414
· · · · · · (
收起)