许多人就有武林,有武林就有IT系统,有IT系统就有数据库查询,有数据库查询就有SQL,SQL运用可一字归纳:“广”。加上其简单易学,SQL完成也可一字归纳:“乐”。
殊不知,SQL尽管完成简易可口可乐,却非常容易引起性能难题,那时候众多SQL应用工作人员可要“愁”就一个字,心痛一次次了。
为何有性能难题?缘故也一字归纳:“量”。当系统软件信息量、高并发浏览量上来后,欠佳SQL便会拖跨全部系统软件,大家乃至找不到什么SQL危害了系统软件。就算寻找也不知道怎样动手能力优化。这时的情绪还可以一字归纳:“懵”。
如今《收获,不止SQL优化——抓住SQL的本质》刚开始陪你抛除苦恼,走入优化的可口可乐全球!
最先教你SQL总体优化、迅速优化执行、怎样了解执行计划、怎样上下执行计划这四大必杀招。整这种干啥呢?回答是,教给一个先总体后部分的宏观经济处理构思,走入“道”的全球。
接下去领着大伙儿翱翔在“术”的天上。教你系统架构、逻辑结构、表设计方案、数据库索引设计方案、表联接这五大要点。这么多招数,这也是要干什么?别着急,它是教你怎样解决困难,精确地说,是怎样不改变即进行SQL优化。
接着《收获,不止SQL优化——抓住SQL的本质》引导大伙儿学好等额的改变、全过程包优化、高級SQL、剖析涵数、要求优化这种有关的五大绝学。有点头晕,可否少一点招数?淡定从容,这還是“术”的范围,仍然是教你怎样解决困难,只不过是此次是怎样改变SQL进行优化。
最后一个章节目录没招数了,在其中追随你很多年的错误观点是不是给你开始怀疑人生,在其中让SQL跑得很慢的见解,是不是给你三观全毁?
再多一点真心实意吧,《收获,不止SQL优化——抓住SQL的本质》出示扫二维码輔助学习培训,是否心被小编给暖来到?
念完本书,来,合上书籍,闭上眼,深吸气,认真来体会SQL优化的全球。一个字:“爽”!
目录
- 第1章 全局在胸——用工具对SQL整体优化 1
- 1.1 都有哪些性能工具 1
- 1.1.1 不同调优场景分析 2
- 1.1.2 不同场景对应工具 2
- 1.2 整体性能工具的要点 4
- 1.2.1 五大性能报告的获取 5
- 1.2.2 五大报告关注的要点 10
- 1.3 案例的分享与交流 18
- 1.3.1 和并行等待有关的案例 18
- 1.3.2 和热块竞争有关的案例 19
- 1.3.3 和日志等待有关的案例 20
- 1.3.4 新疆某系统的前台优化 20
- 1.3.5 浙江某系统的调优案例 21
- 1.4 本章总结延伸与习题 21
- 1.4.1 总结延伸 21
- 1.4.2 习题训练 23
- 第2章 风驰电掣——有效缩短SQL优化过程 24
- 2.1 SQL调优时间都去哪儿了 25
- 2.1.1 不善于批处理频频忙交互 25
- 2.1.2 无法抓住主要矛盾瞎折腾 25
- 2.1.3 未能明确需求目标白费劲 26
- 2.1.4 没有分析操作难度乱调优 26
- 2.2 如何缩短SQL调优时间 27
- 2.2.1 先获取有助调优的数据库整体信息 27
- 2.2.2 快速获取SQL运行台前信息 27
- 2.2.3 快速拿到SQL关联幕后信息 28
- 2.3 从案例看快速SQL调优 29
- 2.3.1 获取数据库整体的运行情况 29
- 2.3.2 获取SQL的各种详细信息 29
- 2.4 本章总结延伸与习题 32
- 2.4.1 总结延伸 32
- 2.4.2 习题训练 33
- 第3章 循规蹈矩——如何读懂SQL执行计划 34
- 3.1 执行计划分析概述 35
- 3.1.1 SQL执行计划是什么 35
- 3.1.2 统计信息用来做什么 36
- 3.1.3 数据库统计信息的收集 37
- 3.1.4 数据库的动态采样 37
- 3.1.5 获取执行计划的方法(6种武器) 40
- 3.2 读懂执行计划的关键 48
- 3.2.1 解释经典执行计划方法 49
- 3.2.2 总结说明 55
- 3.3 从案例辨别低效SQL 55
- 3.3.1 从执行计划读出效率 56
- 3.3.2 执行计划效率总结 60
- 3.4 本章习题、总结与延伸 60
- 第4章 运筹帷幄——左右SQL执行计划妙招 62
- 4.1 控制执行计划的方法综述 63
- 4.1.1 控制执行计划的意义 63
- 4.1.2 控制执行计划的思路 64
- 4.2 从案例探索其方法及意义 65
- 4.2.1 HINT的思路 65
- 4.2.2 非HINT方式的执行计划改变 72
- 4.2.3 执行计划的固定 100
- 4.3 本章习题、总结与延伸 102
- 第5章 且慢,感受体系结构让SQL飞 103
- 5.1 体系结构知识 104
- 5.1.1 组成 104
- 5.1.2 原理 104
- 5.1.3 体会 105
- 5.2 体系与SQL优化 106
- 5.2.1 与共享池相关 107
- 5.2.2 数据缓冲相关 111
- 5.2.3 日志归档相关 116
- 5.3 扩展优化案例 118
- 5.3.1 与共享池相关 118
- 5.3.2 数据缓冲相关 122
- 5.3.3 日志归档相关 126
- 5.4 本章习题、总结与延伸 130
- 第6章 且慢,体验逻辑结构让SQL飞 132
- 6.1 逻辑结构 132
- 6.2 体系细节与SQL优化 133
- 6.2.1 Block 133
- 6.2.2 Segment与extent 137
- 6.2.3 Tablespace 139
- 6.2.4 rowid 139
- 6.3 相关优化案例分析 140
- 6.3.1 块的相关案例 141
- 6.3.2 段的相关案例 144
- 6.3.3 表空间的案例 148
- 6.3.4 rowid 151
- 6.4 本章习题、总结与延伸 153
- 第7章 且慢,探寻表的设计让SQL飞 154
- 7.1 表设计 154
- 7.1.1 表的设计 155
- 7.1.2 其他补充 155
- 7.2 表设计与SQL优化 156
- 7.2.1 表的设计 156
- 7.2.2 其他补充 179
- 7.3 相关优化案例分析 184
- 7.3.1 分区表相关案例 185
- 7.3.2 全局临时表案例 190
- 7.3.3 监控异常的表设计 195
- 7.3.4 表设计优化相关案例总结 199
- 7.4 本章习题、总结与延伸 199
- 第8章 且慢,学习索引如何让SQL飞 200
- 8.1 索引知识要点概述 201
- 8.1.1 索引结构的推理 201
- 8.1.2 索引特性的提炼 204
- 8.2 索引的SQL优化 206
- 8.2.1 经典三大特性 207
- 8.2.2 组合索引选用 217
- 8.2.3 索引扫描类型的分类与构造 219
- 8.3 索引相关优化案例 225
- 8.3.1 三大特性的相关案例 225
- 8.3.2 组合索引的经典案例 231
- 8.4 本章习题、总结与延伸 234
- 第9章 且慢,弄清索引之阻碍让SQL飞 235
- 9.1 索引的不足之处 235
- 9.1.1 索引的各种开销 236
- 9.1.2 索引使用失效 236
- 9.2 感受美好索引另一面 237
- 9.2.1 索引各种开销 237
- 9.2.2 索引使用失效 243
- 9.2.3 索引取舍控制 246
- 9.3 从案例看索引各种恨 248
- 9.3.1 索引的开销 248
- 9.3.2 索引去哪儿了 253
- 9.3.3 索引的取舍 267
- 9.4 本章习题、总结与延伸 269
- 第10章 且慢,其他索引应用让SQL飞 270
- 10.1 其他索引的总体概述 270
- 10.1.1 位图索引 271
- 10.1.2 函数索引 271
- 10.1.3 反向键索引 272
- 10.1.4 全文索引 272
- 10.2 走进其他索引的世界 272
- 10.2.1 位图索引 273
- 10.2.2 函数索引 278
- 10.2.3 反向键索引 282
- 10.2.4 全文索引 282
- 10.3 其他索引的相关案例 285
- 10.3.1 位图索引 286
- 10.3.2 函数索引 288
- 10.3.3 反向键索引 297
- 10.3.4 全文索引 299
- 10.4 本章习题、总结与延伸 300
- 第11章 且慢,表连接的秘密让SQL飞 302
- 11.1 三大经典表连接概要说明 302
- 11.2 各类型表连接的知识要点 303
- 11.2.1 从表的访问次数探索 304
- 11.2.2 表驱动顺序与性能 308
- 11.2.3 表连接是否有排序 311
- 11.2.4 各连接的使用限制 314
- 11.2.5 三大表连接的特性总结 317
- 11.3 从案例学表连接优化要点 (三刀三斧四式走天下) 317
- 11.3.1 一次Nested Loops Join的优化全过程 318
- 11.3.2 一次Hash Join 的 优化全过程 320
- 11.3.3 一次 Merge Sort Join 的优化全过程 324
- 11.3.4 一次统计信息收集不准确引发的NL性能瓶颈 329
- 11.4 本章习题、总结与延伸 332
- 第12章 动手,经典等价改写让SQL飞 333
- 12.1 设法减少访问路径 333
- 12.1.1 Case When改造 334
- 12.1.2 Rownum分页改写 337
- 12.1.3 Hint直接路径改造 338
- 12.1.4 只取你所需的列 339
- 12.1.5 避免或者减少递归调用 341
- 12.1.6 ROWID优化应用 347
- 12.2 设法避免外因影响 350
- 12.2.1 Hint改写确保执行计划正确 350
- 12.2.2 避免子查询的错误执行计划 350
- 12.2.3 所在环境的资源不足等问题 351
- 12.3 本章习题、总结与延伸 351
- 第13章 动手,过程函数优化让SQL飞 352
- 13.1 PL/SQL优化重点 353
- 13.1.1 定义类型的优化 353
- 13.1.2 PL/SQL的集合优化 355
- 13.1.3 PL/SQL的游标合并 361
- 13.1.4 动态SQL 364
- 13.1.5 使用10046 trace跟踪PL/SQL 368
- 13.2 PL/SQL优化其他相关扩展 369
- 13.2.1 编译无法成功 369
- 13.2.2 通用脚本分享 370
- 13.3 本章习题、总结与延伸 380
- 第14章 动手,高级写法应用让SQL飞 381
- 14.1 具体SQL调优思路 381
- 14.1.1 改写SQL调优 382
- 14.1.2 不改写SQL调优 382
- 14.2 高级SQL介绍与案例 383
- 14.2.1 GOURP BY的扩展 383
- 14.2.2 INSERT ALL 389
- 14.2.3 MERGE 392
- 14.2.4 WITH子句 402
- 14.3 本章习题、总结与延伸 404
- 第15章 动手,分析函数让SQL飞 406
- 15.1 高级SQL之分析函数 407
- 15.1.1 语法概述 407
- 15.1.2 特别之处 407
- 15.2 分析函数详解与案例 409
- 15.2.1 学习详解 410
- 15.2.2 案例分享 417
- 15.3 本章习题、总结与延伸 432
- 第16章 动手,把握需求改写让SQL飞 433
- 16.1 考虑需求最小化 434
- 16.2 千万弄清SQL改造的等价性 434
- 16.2.1 看似等价的写法,其实不等价 435
- 16.2.2 看似不等价的写法,其实等价 438
- 16.3 开发设计应用中的需求 439
- 16.3.1 界面权限设计优化 439
- 16.3.2 界面汇总与展现 439
- 16.3.3 界面实时刷新改良 439
- 16.3.4 目录树菜单的优化 440
- 16.4 场景选择的经典案例之谁是Count(*)之王 440
- 16.4.1 优化过程 440
- 16.4.2 优化总结 445
- 16.5 本章习题、总结与延伸 446
- 第17章 总结与延伸:从勿信讹传到洞若观火 447
- 17.1 SQL优化的各个误区 447
- 17.1.1 COUNT(*)与COUNT(列)的传言 447
- 17.1.2 谈SQL编写顺序之流言蜚语 451
- 17.1.3 IN与EXISTS之争 455
- 17.1.4 总结探讨 457
- 17.2 误区背后的话题扩展 457
- 17.2.1 话题扩展之等价与否优先 457
- 17.2.2 话题扩展之颠覆误区观点 458
- 17.3 全书完,致读者 461