
作者:闫书清
页数:308
出版社:电子工业出版社
出版日期:2017
ISBN:9787121323621
电子书格式:pdf/epub/txt
内容简介
很多时候,核心模块的性能问题,很可能是数据库的问题。本书授人以鱼的同时 更授人以渔,不仅详细讲解了SQL调优的理论基础,更是通过10个实际案例,介绍了遇到性能问题时,SQL调优的分析思路、方法、步骤以及调优后的效果。这些分析问题的思路、解决问题的方法一定能内容简介帮助读者打开思维的大门,解决自身工作中遇到的实际问题,这也是本书的写作初衷。
作者简介
闫书清,网名:兰花岛主_北京(lhdz_bj),20世纪90年代初大学毕业至今,一直默默深耕于数据库领域,擅长数据库优化、数据库分析诊断、数据库规划设计等。曾供职于能源、金融、电信等多个行业,任多家大型企业首席DBA及数据库架构师等职位。
本书特色
本书共分为两篇,基础篇(第1 章~第10 章)介绍了SQL 调优应该具备和掌握的理论和方法,实践篇(第11 章)精选并深入解析了10 个现实中的实际案例。本书前3 章主要介绍了Oracle 数据库架构设计及实现方面的内容。第4 章详细讲解了Oracle 各种数据库对象的相关实现、特性和理解。第5 章介绍了事务及Oracle 事务相关的特性。第6~8 章详细讲解了执行计划及其相关因素、方法和元素。第9~10 章分别讲解了如何通过分析SQL 语句执行计划来确定其性能瓶颈,进而解决相关问题的思路和方法。第11 章以精选的10 个现实中的实际案例为样本,并对其逐一进行了理论结合实践的深入讲解和剖析,以期通过实际案例的解析,达到读者对基础理论进行验证、再学习的目的。本书适用于所有关系数据库相关从业人员,尤其是中高端技术人员。
目录
基础篇
第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 ANSI/ISO 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
实践篇
第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















