上篇 开启惊喜之门——带意识地学Oracle 2
第1章 意识,少做事从学习开始 2
1.1选择先学什么颇有学问 2
1.1.1梁老师课堂爆笑开场 2
1.1.2看似跑题的手机分类 4
1.1.3学什么先了解做什么 5
1.2善于规划分类才有效果 7
1.2.1分类与角色密切相关 7
1.2.2角色自我认识有讲究 9
1.3明白学以致用方有意义 11
第2章 震惊,体验物理体系之旅 13
2.1必须提及的系列知识 13
2.2物理体系从老余开店慢慢铺开 16
2.2.1老余的三个小故事 16
2.2.1.1顾客的尺寸 16
2.2.1.2有效的调整 17
2.2.1.3记录的习惯 18
2.2.2体系结构原理初探 20
2.2.2.1从一普通查询SQL说起 20
2.2.2.2老余故事终现用心良苦 23
2.2.2.3一起体会Oracle代价 27
2.2.3体系结构原理再探 30
2.2.3.1从一普通更新语句说起 30
2.2.3.2体系结构中提交的探讨 34
2.2.3.3劳模的评选 38
2.2.3.4回滚的研究 40
2.2.3.5一致的查询 43
2.2.3.6一致读的原理 46
2.2.3.7实践的体会 49
2.3体系学习让SQL性能提升千倍 65
2.3.1一起探索体系学习的意义 65
2.3.1.1同学们不知所学何用 66
2.3.1.2实际上大有用武之地 67
2.3.2单车到飞船的经典之旅 70
2.3.2.1未优化前,单车速度 70
2.3.2.2绑定变量,摩托速度 72
2.3.2.3静态改写,汽车速度 74
2.3.2.4批量提交,动车速度 75
2.3.2.5集合写法,飞机速度 77
2.3.2.6直接路径…火箭速度 78
2.3.2.7并行设置…飞船速度 79
2.3.3精彩的总结与课程展望 80
2.3.3.1最大的收获应该是思想 80
2.3.3.2老师的课程展望与规划 81
第3章 神奇,走进逻辑体系世界 84
3.1长幼有序的逻辑体系 84
3.2逻辑体系从老余养殖细细说起 85
3.2.1农场之体系逻辑结构 85
3.2.2农场之BLOCK漫谈 89
3.2.3农场之区与段 91
3.2.4农场之表空间的分类 93
3.2.4.1表空间与系统农场 93
3.2.4.2表空间与临时农场 93
3.2.4.3表空间与回滚农场 94
3.2.5逻辑结构之初次体会 94
3.2.5.1逻辑结构之BLOCK 94
3.2.5.2逻辑结构之TABLESPACE 95
3.2.5.3逻辑结构之USER 97
3.2.5.4逻辑结构之EXTENT 97
3.2.5.5逻辑结构之SEGMENT 98
3.2.6逻辑结构之二次体会 100
3.2.6.1 BLOCK的大小与调整 100
3.2.6.2 PCTFREE参数与调整 101
3.2.6.3 PCTFREE与生效范围 102
3.2.6.4 EXTENT尺寸与调整 103
3.2.7逻辑结构之三次体会 104
3.2.7.1已用与未用表空间情况 104
3.2.7.2表空间大小与自动扩展 105
3.2.7.3回滚表空间新建与切换 109
3.2.7.4临时表空间新建与切换 111
3.2.7.5临时表空间组及其妙用 114
3.3课程结束你给程序安上了翅膀 117
3.3.1过度扩展与性能 117
3.3.2 PCTFREE与性能 120
3.3.3行迁移与优化 123
3.3.4块的大小与应用 124
第4章 祝贺,表的设计成就英雄 131
4.1表的设计之五朵金花 131
4.2表的特性从老余一家展开描述 132
4.2.1老余一家各施所长 132
4.2.2普通堆表不足之处 132
4.2.2.1表更新日志开销较大 133
4.2.2.2 delete无法释放空间 136
4.2.2.3表记录太大检索较慢 139
4.2.2.4索引回表读开销很大 140
4.2.2.5有序插入却难有序读出 143
4.2.3奇特的全局临时表 146
4.2.3.1分析全局临时表的类型 146
4.2.3.2观察各类DML的REDO量 147
4.2.3.3全局临时表两大重要特性 149
4.2.4神通广大的分区表 153
4.2.4.1分区表类型及原理 155
4.2.4.2分区表最实用的特性 165
4.2.4.3分区索引类型简述 176
4.2.4.4分区表之相关陷阱 177
4.2.5有趣的索引组织表 184
4.2.6簇表的介绍及应用 187
4.3理解表设计的你成为项目组英雄 189
第5章 惊叹,索引天地妙不可言 191
5.1看似简单无趣的索引知识 191
5.2索引探秘从小余缉凶拉开帷幕 192
5.2.1 BTREE索引的精彩世界 192
5.2.1.1 BTREE索引结构图展现 192
5.2.1.2到底是物理还是逻辑结构 194
5.2.1.3索引结构三大重要特点 198
5.2.1.4插播小余缉凶精彩故事 201
5.2.1.5妙用三特征之高度较低 203
5.2.1.6巧用三特征之存储列值 219
5.2.1.7活用三特征之索引有序 248
5.2.1.8不可不说的主外键设计 265
5.2.1.9组合索引高效设计要领 272
5.2.1.10变换角度看索引的危害 289
5.2.1.11如何合理控制索引数量 295
5.2.2位图索引的玫瑰花之刺 297
5.2.2.1统计条数奋勇夺冠 297
5.2.2.2即席查询一骑绝尘 302
5.2.2.3遭遇更新苦不堪言 306
5.2.2.4重复度低一败涂地 309
5.2.2.5了解结构真相大白 311
5.2.3小心函数索引步步陷阱 315
5.2.3.1列运算让索引失去作用 315
5.2.3.2函数索引是这样应用的 317
5.2.3.3避免列运算的经典案例 319
5.3索引让一系列最熟悉的SQL飞起来了 325
第6章 经典,表的连接学以致用 327
6.1表的连接之江南三剑客 327
6.2三大类型从小余跳舞一一道来 328
6.2.1跳舞也能跳出连接类型 328
6.2.1.1感觉怪异的嵌套循环 328
6.2.1.2排序合并及哈希连接 329
6.2.2各类连接访问次数差异 330
6.2.2.1嵌套循环的表访问次数 330
6.2.2.2哈希连接的表访问次数 337
6.2.2.3排序合并的表访问次数 340
6.2.3各类连接驱动顺序区别 341
6.2.3.1嵌套循环的表驱动顺序 341
6.2.3.2哈希连接的表驱动顺序 343
6.2.3.3排序合并的表驱动顺序 345
6.2.4各类连接排序情况分析 347
6.2.4.1除嵌套循环都需排序 347
6.2.4.2排序只需取部分字段 347
6.2.4.3关于排序的经典案例 349
6.2.5各类连接限制场景对比 350
6.2.5.1哈希连接的限制 350
6.2.5.2排序合并的限制 353
6.2.5.3嵌套循环无限制 355
6.3你动手装备的表连接威震三军 355
6.3.1嵌套循环与索引 356
6.3.2哈希连接与索引 362
6.3.3排序合并与索引 363
下篇 飞翔意识天空——思想与案例的分享 368
第7章 搞定!不靠技术靠菜刀 368
7.1 SQL被一刀剁了 369
7.2整个模块丢弃了 370
7.3调用次数减少了 371
7.4排序不再需要了 372
7.5大表砍成小表了 373
7.6排重操作消失了 373
7.7插入阻碍小多了 374
7.8迁移事情不做了 375
第8章 升级!靠技术改隐形刀 377
8.1大表等同小表了 378
8.2大表切成小表了 379
8.3索引变身小表了 380
8.4删除动作不做了 380
8.5清表角度变换了 381
8.6提交次数缩减了 382
8.7迁移越来越快了 384
8.8 SQL语句精简了 385
第9章 提问,也是智慧的体现 391
9.1描述要考虑周全 392
9.2用词要尽量准确 393
9.3说明要力求简洁 394
9.4问过的避免再问 396
9.5能搜能试不急问 396
第10章 买鱼,居然买出方法论 398
10.1小余买鱼系列故事 398
10.1.1诊断与改进 398
10.1.2需求与设计 401
10.1.3资源的利用 403
10.1.4真正的需求 404
10.2买鱼买出了方法论 405
10.2.1一套流程 405
10.2.2两大法宝 407
10.3方法论的应用案例 408
10.3.1从我们的这一套流程说起 408
10.3.1.1诊断 408
10.3.1.2改进优化(首次优化) 409
10.3.1.3需求与设计(再次优化) 410
10.3.1.4资源利用(花絮) 412
10.3.2案例映衬了经典两大法宝 412
第11章 宝典,规范让你少做事 414
11.1抓狂,为何事总忙不完 415
11.1.1技术能力不足的新人们 415
11.1.2不懂提问智慧的求助者 415
11.1.3产生各种失误的粗心者 416
11.1.3.1啊,小黄的DDL惹祸 416
11.1.3.2惨,老师登错环境了 417
11.1.3.3糟,小罗忘操作 417
11.1.4解决问题缓慢的技术员 419
11.1.4.1优化效率低下的小高 419
11.1.4.2为何老师能快速解决 420
11.1.5陷入种种困境的开发者 422
11.1.5.1超长SQL使小郑烦恼 422
11.1.5.2缺少注释让小叶沮丧 422
11.1.6总是考虑不全的设计者 423
11.1.6.1未提前规划的王工 423
11.1.6.2不了解特性的刘工 424
11.2淡定,规范少做无谓事 425
11.2.1学习规范——促成新人快速成长 426
11.2.2求助规范——引导求助不再迷糊 427
11.2.3操作规范——协助粗心者不犯错 428
11.2.4流程规范——保障问题快速解决 429
11.2.4.1动态整体 429
11.2.4.2动态局部 432
11.2.4.3静态整体 439
11.2.4.4静态局部 448
11.2.5开发规范——让开发者驾轻就熟 451
11.2.5.1 SQL编写规范 452
11.2.5.2 PL/SQL编写规范 455
11.2.6设计规范——助设计者运筹帷幄 457
11.2.6.1表规范 458
11.2.6.2索引规范 461
11.2.6.3环境参数规范 467
11.2.6.4命名规范 469