文档介绍:谈数据库相关规范梁敬彬福富软件梁敬彬: 网名: wabjtam123 ITPUB 版主、 ITPUB 社区专家、福富软件数据库专家。新浪微博: /wabjtam123 @梁敬彬_wabjtam123 规范交流从小高故事开始今天演讲的主题就是两个字: 规范。听起来或许很枯燥,而且具体的技术细节,都已经体现在《数据库设计与开发规范》里了。我们就换一个角度,从身边的小故事来说起。故事的主人公叫小高,是一个系统集成项目组的新人,从事 DBA 相关的工作一两年。这个故事不止是说明设计与开发规范,也不止是规范制定的讨论。希望大家:收获,不止规范。 , 总算可以开始分析了故事从某天早上 10点,小高接到一个紧急救助电话开始。“小高,我是小陈,河南 XX系统的数据库挂了,请你尽快帮忙处理。多谢! ”“哦,好的。”放下电话,小高准备开始处理问题了。咦,好像哪里有些不对劲。感觉少了什么?( 愣啥?快打电话啊! ) “小陈,你那环境怎么访问啊……”“哦,是这样这样访问滴……”“好的,那我连连看。”电话又放下了。五分钟过后。“小陈,你提供的数据库密码咋不对哩? ”“那我又怎么可以连上哩? ”五分钟过后。整明白了,小高想的是数据库用户和密码,而小陈给的是主机的用户及密码。“那我怎么知道你为什么又可以连上哩? ”五分钟过后。天啦, 总算可以开始分析了。“小陈,我可以登数据库正常操作,没挂啊? ”十分钟过后。“小陈, VPN 中断(pause) 了n次,名不虚传!我人快挂了,你帮我取 AWR 吧。”三十分钟过后。小高总算取到了报表,他放下电话,打开邮箱,收到了小陈传来的 AWR 报表。“哦,我说的挂,指的是前台访问数据库很慢。”“我勒个去了,原来最遥远的距离不是苹果 5代与 5袋苹果,而是你我心中的挂啊……”放下电话后,小高开始尝试用收集 AWR 报表的方法进行性能诊断。“我不会啊。”“那我电话里教你吧。” 2. 艾玛,小高到底还要问多少次二十分钟过后。“小陈,是一些 SQL 需要优化,你帮我取一下它们的执行计划吧。”二十分钟过去了。“小陈,我崩溃了,你又错了,取的文件还是空的。”十五分钟过去了。小高终于取到了对应 SQL 的执行计划了,看着看着,他又拿起电话……. “什么叫执行计划? ”“哦, MY GOD ,你上次不是跟我说过研究数据库好多年了吗? ”“我是说我看了好多年数据库的书。”“你……算了,还是我来教你取执行计划吧。”“小高,我崩溃+1,要不你用 QQ 远程桌面连到我这来操作吧。”7 “小陈,你帮我执行这个脚本,查查 T1表的 COL1 列是否有索引? ”艾玛,小高到底还要问多少次? “好的。”五分钟过后。“小陈,再帮我看看 T2表记录有多大,好吗? “好的。”五分钟过后。“小陈,最后帮我看看 T3表是不是分区表,好吗? ”“好的。”五分钟过后。“小陈,最最后帮我看 T4表是什么类型的,我怀疑是全局临时表。”“好的。” N个五分钟过后。“小陈,最最最……后帮我看看…….好吗? ”“不好。”“咋啦,对我有意见? ”“不是我对你有意见,是我肚子对你有意见。”吃完午饭,他们下午继续奋战。“小陈,我刚加了一些索引。你观察看看,系统有没有变快。”“现在点前台界面,快多了! ”“欧耶,太好了,胜利! ”一个小时过后。“太好了,太……”小高忽然又察觉到哪里有些不对劲。(哎呀,这是我的功劳吗?) “小高,刚同事跟我说,就中午我们去吃饭的那会儿开始,系统已经正常了。”“小高,有人反映中午大致有 20分钟左右时间入库进程一直失败,现在正常。”“哦, 20分钟,正常就好……”咦,停!咋又觉得哪里不对劲。( 我的天,这 20 分钟,不就是我建索引的时长吗? ) 第二天早上 10点“小高,我是小陈,河南 XX系统的数据库又挂了!”“拜托别再说挂了,是前台又点很慢吧。”“崩溃,干脆老天让我也挂了吧。”“是的,和昨天的情景一模一样。” 3. 崩溃,干脆老天让我也挂了吧 4. 师傅,您真是我们的救命菩萨啊“师傅,总算请到您出马了,您请这里坐。”“小高啊,这系统昨天出问题之前,是否都是正常? ”“哦,这倒没问,不清楚啊。”“没问?那是某个菜单查询界面慢,还是所有前台界面都慢呢? ”“师傅,应该是都慢吧,哦,我不确定,要不我问问? ”两分钟过后。“师傅,昨天以前系统是正常的,此外就小陈操作的那个前台查询界面会时快时慢,其他菜单都一直正常。小陈说他自己也是才了解到的。”“那昨天以前有啥动作吗,比如打过补丁?如果有,问问他们是否允许回退。”“好的,我再问问。”两分钟过后。“师傅,真是有打过补丁啊!他们说这个补丁允许回退。”“那就回退吧,在相同数据量的测试环境下去测试一下,看看问题在哪里吧。”一周过后。“小高,上次那事怎么样,还有没有人再说那个什么来着? ”“补丁回退后,那个