1从案例中推导SQL优化的总体思路与误区.pdf
《1从案例中推导SQL优化的总体思路与误区.pdf》由会员分享,可在线阅读,更多相关《1从案例中推导SQL优化的总体思路与误区.pdf(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 基于案例学SQL优化第1周 从案例中推导从案例中推导SQL优优化的总体思路与误区化的总体思路与误区 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 法律声明【声明】本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被追究法律和经济责任。课程详情访问炼数成金培训网站 http:/ 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 梁敬彬,福富软件ITM产品线架构师及公司在聘数据库专家,ITPUB版主及社区专家,著有多本技术书籍,其新
2、书收获,不止Oracle深受广大读者喜爱。关于老师 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 当前课程进度 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 第1周课程总览之1 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 缺乏对讹传的辨知力(count讹传)列没了怎么办大小表的时间增长性基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 1.COUNT(*)比COUNT(列)更慢!项目组必须用COUNT(列),不准用COUNT(*),谁用扣谁钱!2.COUNT(*)用不到索引,COUNT(列)才能用到。
3、3.COUNT(*)是统计出全表的记录,是吞吐量的操作,肯定用不到索引。No no no!这些都是这些都是谣言,转谣言,转500次以上次以上你是会有麻烦的!你是会有麻烦的!关于COUNT的对话 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 点这里试试哪种写法更快?点这里试试哪种写法更快?COUNT对话正确不否的试验证明 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 COUNT(*)COUNT(列)哪哪种写法更快?种写法更快?不等价谈何哪种写法更快呢?不等价谈何哪种写法更快呢?COUNT对话正确不否结论 基于案例学SQL优化 讲师 梁敬彬 DATA
4、GURU与业数据分析社区 点这里了解更深入的信息!点这里了解更深入的信息!COUNT对话更深入的理解 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 结论:原来优化器里的算法是这么玩的,列的偏移量决定性能,列越靠后,访问的开销越大。由于count(*)的算法与列偏移量无关,所以count(*)最快,最快,count(最后列最后列)最慢最慢。结结论论:更更 深深 入入 信信息息 的的 结结果果图图示示 这个结论对我们开发设计,可是有启发哦,你要把这个结论对我们开发设计,可是有启发哦,你要把不常访问的列,放在什么位置?不常访问的列,放在什么位置?根据访问时间设置建表方式基于案
5、例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 缺乏对讹传的辨知力(SQL编写顺序讹传)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区?基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 这些优化观点,这些优化观点,你也传播出去你也传播出去了吗?了吗?基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 和表连接顺序有关的流言蜚语和表连接顺序有关的流言蜚语 与表条件顺序有关的以讹传讹与表条件顺序有关的以讹传讹 关于SQL书写顺序的试验证明 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 结论:结论:基
6、于RBO或许是如此,基于CBO时代,早就不是如此了,过时了!关于SQL书写顺序的试验结论 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 缺乏对讹传的辨知力(in不exists之争)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 不知道这些说法不知道这些说法被转了多少次,被转了多少次,我只能为你祈祷我只能为你祈祷平安了!平安了!基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 点点这里看看这里看看10g环境的情况环境的情况 关于IN不EXIST的试验证明(10g)什么什么不是什么什么的访问算法,此前都是filter!此种算法效率更
7、高只要加上非空条件,效率算法就是一样的基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 关于IN不EXIST的试验证明(11g)点这里瞧瞧点这里瞧瞧11g环境的情况环境的情况 11g的CBO时代,优化器并非想象的那样基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 关于IN不EXIST的试验结论 一般来说,anti的反连接算法比filter更高效,但是在10g时,Oracle的这个算法不完善,必须要制定非空,才可以让not in 用anti算法。在11g的时候,这个情况已经改变了,无论not in 还是not exists,无论是否列为空,都可以走到Or
8、acle比较先进高效的anti反连接算法。结论:结论:基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区“网上流传的名人名言“网上流传的名人名言80%以上都是假的”以上都是假的”亚拉伯罕亚拉伯罕 林肯林肯 最精彩的名人名言 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 第1周课程总览之2 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 1.听听和全局临时表有关的故事听听和全局临时表有关的故事 2.讲述分区清理带给我们的好处讲述分区清理带给我们的好处 丌具备少做事
9、意识(设计中的少做事)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 3.体会分区消除带来的性能提升体会分区消除带来的性能提升 丌具备少做事意识(设计中的少做事)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 1.避免避免SQL中的函数调用有啥好处中的函数调用有啥好处 请看与开发中少做事相关的案例说明!请看与开发中少做事相关的案例说明!丌具备少做事意识(开发中的少做事)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 2.减少减少SQL中的函数调用有何思路中的函
10、数调用有何思路 丌具备少做事意识(开发中的少做事)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 3.集合写法能给性能提升多少集合写法能给性能提升多少 丌具备少做事意识(开发中的少做事)尽量考虑集合算法基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 4.只取你所需的列,访问视图变更快了只取你所需的列,访问视图变更快了 丌具备少做事意识(开发中的少做事)基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 5.只取你所需的列,索引读无需回表了只取你所需的列,索引读无需回表了 丌具备少做事意识(开发中的少做事)读完索引后又重新访问表基于案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 案例 推导 SQL 优化 总体 思路 误区
限制150内