前言
别出心裁 另出蹊径
——与梁敬彬先生序
敬彬的新书就要出版,邀我写一点感受,于是就有了这一段文字。
我和敬彬相识是在2010年,那时我正在编辑《Oracle DBA手记》一书,偶然被他发表在ITPUB论坛上的一篇文章所吸引,那篇文章的题目是《DBA 小故事之SQL诊断》,其内容清晰、行文引人,于是就和他约了那篇稿子加入到书中,期间邮件往来再到北京会面,就此熟识。
从当时的一篇文章到今天的一本书,我能够清晰地看到作者一以贯之的思考和叙述方式,这种积累与坚持也正是作者成长和成功的要素之一。
当时那篇文章的感受和今天这本书是类似的,作者能够用曲折的笔触将自己的经历真实生动地再现出来,并且带领读者一起经历一次思维的探索,这是属于他的独特风格。
作者在书中反复传达的核心观点是:Oracle数据库看似艰深的原理实际上和生活中的基本常识并无二致。理解了这一层意思,就能够克服对于这门技艺的畏惧之心,此后的学习自然就能够顺风顺水。
诚然如此,我也经常和朋友们说,对于Oracle的很多艰深算法,如果由我们去深思熟虑,其结果都必然大致相同。类似HASH原理,布隆过滤等算法,理解了你就只觉得巧妙而不觉艰深。
现在梁老师就为我们寻找了一系列源于生活、循序渐进的学习路线,如果你能够细心领会,就会觉得这一门技艺实在是趣味横生。
盖国强(eygle)
Oracle ACE总监
云和恩墨创始人
ACOUG创始人
作者简介
梁敬彬,网名wabjtam123,任ITPUB版主、ITPUB社区专家、福建富士通公司数据库专家。参与编写过《剑破冰山--Oracle开发艺术》、《DBA手记2》等技术书籍,多年从事电信相关行业工作,负责系统架构设计、优化、培训等工作,有着丰富的数据库管理、设计、开发、培训经验和电信行业经验。
梁敬弘,清华大学计算机系博士毕业,在计算机领域和金融领域皆有建树,拥有多项计算机相关核心专利技术的同时还拥有金融行业的CFP等高级认证。现就职于华夏银行总行。
目录
上篇 开启惊喜之门--带意识地学Oracle
第1章 意识,少做事从学习开始
1.1 选择先学什么颇有学问
1.1.1 梁老师课堂爆笑开场
1.1.2 看似跑题的手机分类
1.1.3 学什么先了解做什么
1.2 善于规划分类才有效果
1.2.1 分类与角色密切相关
1.2.2 角色自我认识有讲究
1.3 明白学以致用方有意义
第2章 震惊,体验物理体系之旅
2.1 必须提及的系列知识
2.2 物理体系从老余开店慢慢铺开
2.2.1 老余的三个小故事
2.2.1.1 顾客的尺寸
2.2.1.2 有效的调整
2.2.1.3 记录的习惯
2.2.2 体系结构原理初探
2.2.2.1 从一普通查询SQL说起
2.2.2.2 老余故事终现用心良苦
2.2.2.3 一起体会Oracle代价
2.2.3 体系结构原理再探
2.2.3.1 从一普通更新语句说起
2.2.3.2 体系结构中提交的探讨
2.2.3.3 劳模的评选
2.2.3.4 回滚的研究
2.2.3.5 一致的查询
2.2.3.6 一致读的原理
2.2.3.7 实践的体会
2.3 体系学习让SQL性能提升千倍
2.3.1 一起探索体系学习的意义
2.3.1.1 同学们不知所学何用
2.3.1.2 实际上大有用武之地
2.3.2 单车到飞船的经典之旅
2.3.2.1 未优化前,单车速度
2.3.2.2 绑定变量,摩托速度
2.3.2.3 静态改写,汽车速度
2.3.2.4 批量提交,动车速度
2.3.2.5 集合写法,飞机速度
2.3.2.6 直接路径,火箭速度
2.3.2.7 并行设置,飞船速度
2.3.3 精彩的总结与课程展望
2.3.3.1 最大的收获应该是思想
2.3.3.2 老师的课程展望与规划
第3章 神奇,走进逻辑体系世界
3.1 长幼有序的逻辑体系
3.2 逻辑体系从老余养殖细细说起
3.2.1 农场之体系逻辑结构
3.2.2 农场之 BLOCK 漫谈
3.2.3 农场之区与段
3.2.4 农场之表空间的分类
3.2.4.1 表空间与系统农场
3.2.4.2 表空间与临时农场
3.2.4.3 表空间与回滚农场
3.2.5 逻辑结构之初次体会
3.2.5.1 逻辑结构之 BLOCK
3.2.5.2 逻辑结构之 TABLESPACE
3.2.5.3 逻辑结构之 USER
3.2.5.4 逻辑结构之 EXTENT
3.2.5.5 逻辑结构之 SEGMENT
3.2.6 逻辑结构之二次体会
3.2.6.1 BLOCK的大小与调整
3.2.6.2 PCTFREE参数与调整
3.2.6.3 PCTFREE与生效范围
3.2.6.4 EXTENT 尺寸与调整
3.2.7 逻辑结构之三次体会
3.2.7.1 已用与未用表空间情况
3.2.7.2 表空间大小与自动扩展
3.2.7.3 回滚表空间新建与切换
3.2.7.4 临时表空间新建与切换
3.2.7.5 临时表空间组及其妙用
3.3 课程结束你给程序安上了翅膀
3.3.1 过度扩展与性能
3.3.2 PCTFREE与性能
3.3.3 行迁移与优化
3.3.4 块的大小与应用
第4章 祝贺,表的设计成就英雄
4.1 表的设计之五朵金花
4.2 表的特性从老余一家展开描述
4.2.1 老余一家各施所长
4.2.2 普通堆表不足之处
4.2.2.1 表更新日志开销较大
4.2.2.2 delete无法释放空间
4.2.2.3 表记录太大检索较慢
4.2.2.4 索引回表读开销很大
4.2.2.5 有序插入却难有序读出
4.2.3 奇特的全局临时表
4.2.3.1 分析全局临时表的类型
4.2.3.2 观察各类DML的REDO量
4.2.3.3 全局临时表两大重要特性
4.2.4 神通广大的分区表
4.2.4.1 分区表类型及原理
4.2.4.2 分区表最实用的特性
4.2.4.3 分区索引类型简述
4.2.4.4 分区表之相关陷阱
4.2.5 有趣的索引组织表
4.2.6 簇表的介绍及应用
4.3 理解表设计的你成为项目组英雄
第5章 惊叹,索引天地妙不可言
5.1 看似简单无趣的索引知识
5.2 索引探秘从小余缉凶拉开帷幕
5.2.1 BTREE索引的精彩世界
5.2.1.1 BTREE索引结构图展现
5.2.1.2 到底是物理还是逻辑结构
5.2.1.3 索引结构三大重要特点
5.2.1.4 插播小余缉凶精彩故事
5.2.1.5 妙用三特征之高度较低
5.2.1.6 巧用三特征之存储列值
5.2.1.7 活用三特征之索引有序
5.2.1.8 不可不说的主外键设计
5.2.1.9 组合索引高效设计要领
5.2.1.10 变换角度看索引的危害
5.2.1.11 如何合理控制索引数量
5.2.2 位图索引的玫瑰花之刺
5.2.2.1 统计条数奋勇夺冠
5.2.2.2 即席查询一骑绝尘
5.2.2.3 遭遇更新苦不堪言
5.2.2.4 重复度低一败涂地
5.2.2.5 了解结构真相大白
5.2.3 小心函数索引步步陷阱
5.2.3.1 列运算让索引失去作用
5.2.3.2 函数索引是这样应用的
5.2.3.3 避免列运算的经典案例
5.3 索引让一系列最熟悉的SQL飞起来了
第6章 经典,表的连接学以致用
6.1 表的连接之江南三剑客
6.2 三大类型从小余跳舞一一道来
6.2.1 跳舞也能跳出连接类型
6.2.1.1 感觉怪异的嵌套循环
6.2.1.2 排序合并及哈希连接
6.2.2 各类连接访问次数差异
6.2.2.1 嵌套循环的表访问次数
6.2.2.2 哈希连接的表访问次数
6.2.2.3 排序合并的表访问次数
6.2.3 各类连接驱动顺序区别
6.2.3.1 嵌套循环的表驱动顺序
6.2.3.2 哈希连接的表驱动顺序
6.2.3.3 排序合并的表驱动顺序
6.2.4 各类连接排序情况分析
6.2.4.1 除嵌套循环都需排序
6.2.4.2 排序只需取部分字段
6.2.4.3 关于排序的经典案例
6.2.5 各类连接限制场景对比
6.2.5.1 哈希连接的限制
6.2.5.2 排序合并的限制
6.2.5.3 嵌套循环无限制
6.3 你动手装备的表连接威震三军
6.3.1 嵌套循环与索引
6.3.2 哈希连接与索引
6.3.3 排序合并与索引
下篇 飞翔意识天空--思想与案例的分享
第7章 搞定!不靠技术靠菜刀
7.1 SQL被一刀剁了
7.2 整个模块丢弃了
7.3 调用次数减少了
7.4 排序不再需要了
7.5 大表砍成小表了
7.6 排重操作消失了
7.7 插入阻碍小多了
7.8 迁移事情不做了
第8章 升级!靠技术改隐形刀
8.1 大表等同小表了
8.2 大表切成小表了
8.3 索引变身小表了
8.4 删除动作不做了
8.5 清表角度变换了
8.6 提交次数缩减了
8.7 迁移越来越快了
8.8 SQL语句精简了
第9章 提问,也是智慧的体现
9.1 描述要考虑周全
9.2 用词要尽量准确
9.3 说明要力求简洁
9.4 问过的避免再问
9.5 能搜能试不急问
第10章 买鱼,居然买出方法论
10.1 小余买鱼系列故事
10.1.1 诊断与改进
10.1.2 需求与设计
10.1.3 资源的利用
10.1.4 真正的需求
10.2 买鱼买出了方法论
10.2.1 一套流程
10.2.2 两大法宝
10.3 方法论的应用案例
10.3.1 从我们的这一套流程说起
10.3.1.1 诊断
10.3.1.2 改进优化(首次优化)
10.3.1.3 需求与设计(再次优化)
10.3.1.4 资源利用(花絮)
10.3.2 案例映衬了经典两大法宝
第11章 宝典,规范让你少做事
11.1 抓狂,为何事总忙不完
11.1.1 技术能力不足的新人们
11.1.2 不懂提问智慧的求助者
11.1.3 产生各种失误的粗心者
11.1.3.1 啊,小黄的DDL惹祸
11.1.3.2 惨,老师登错环境了
11.1.3.3 糟,小罗忘操作……
11.1.4 解决问题缓慢的技术员
11.1.4.1 优化效率低下的小高
11.1.4.2 为何老师能快速解决
11.1.5 陷入种种困境的开发者
11.1.5.1 超长SQL使小郑烦恼
11.1.5.2 缺少注释让小叶沮丧
11.1.6 总是考虑不全的设计者
11.1.6.1 未提前规划的王工
11.1.6.2 不了解特性的刘工
11.2 淡定,规范少做无谓事
11.2.1 学习规范--促成新人快速成长
11.2.2 求助规范--引导求助不再迷糊
11.2.3 操作规范--协助粗心者不犯错
11.2.4 流程规范--保障问题快速解决
11.2.4.1 动态整体
11.2.4.2 动态局部
11.2.4.3 静态整体
11.2.4.4 静态局部
11.2.5 开发规范--让开发者驾轻就熟
11.2.5.1 SQL编写规范
11.2.5.2 PL/SQL编写规范
11.2.6 设计规范--助设计者运筹帷幄
11.2.6.1 表规范
11.2.6.2 索引规范
11.2.6.3 环境参数规范
11.2.6.4 命名规范
内容摘要
在《收获,不止Oracle》这本书里读者将会跟随作者一同对Oracle数据库的相关知识进行梳理,最终共同提炼出必须先掌握的那部分知识,无论你是数据库开发、管理、优化、设计人员,还是从事Java、C的开发人员。接下来作者再将这部分知识中实用的内容进一步提炼,浓缩出精华的部分,分享给大家。这是二八现象的一次经典应用。
这部分知识就是Oracle的物理体系结构、逻辑体系结构、表、索引以及表连接五大部分。通过阅读这些章节,读者将会在短时间内以一种有史以来轻松的方式,完成对Oracle数据库的整体认识,不仅能在工作中解决常规问题,还能具备一定的设计和调优能力。相信通过这些章节的学习,会给读者的Oracle学习带来极大的收获。
然而,作者希望看到的是:让读者的收获,不止Oracle。
为达到此目的,作者精心将全书分成了上下两篇,刚才所描述的具体知识点体现在全书的上篇,而在下篇中,读者将通过各种精彩故事、生动案例,体会到该如何学习和如何思考,在意识的天空抛开束缚,无拘无束、尽情飞翔。
在这里,读者也许会有疑问,前面说的有史以来轻松的方式是一种什么样的方式呢?还请亲爱的读者自己去揭晓谜底吧。
主编推荐
发书评+在新浪微博晒单并@Broadview博文视点或@粱敬彬_wabjtam123 /@张月萍,将获得作者粱敬彬老师的2小时SQL优化课程视频。
《收获,不止Oracle》颠覆IT技术图书的传统写作方式,在妙趣横生的故事中学到Oracle核心知识与优化方法论,让你摆脱技术束缚。
以下为对购买帮助不大的评价