查看原文
其他

云和恩墨助力Oracle Code:杨廷琨分享如何编写高效SQL(含PPT)

云和恩墨 2019-12-14

2018 Oracle Code 于5月17日在新加坡拉开帷幕。作为全球开发者交流分享的年度盛会,为吸引所有领域的开发者,Oracle今年将自1996年开始的JavaOne大会更名为 Oracle Code One,涵盖全行业的高端技术人才。

云和恩墨CTO杨廷琨受邀参加,并在大会上发表主题演讲《How to write an efficient SQL》。

调查显示,SQL是目前第二大编程语言,自诞生以来40多年一直发挥着重要的作用,有50%的开发者都在使用SQL。虽然使用非常广泛,但是SQL的质量水平却并不令人满意。



根据经验80%的数据库问题是由于SQL引起的,而80%的SQL问题来自于20%的SQL语句,在一些高并发高负载的系统中,由于一条SQL的性能问题导致数据库整体出现异常的情况屡见不鲜,这也是杨廷琨本次选择这个主题的原因,希望帮助更多的开发人员可以书写出高效的SQL语句。

 

 

本次主题包括四方面的内容:合理的使用新特性;数据集整体处理;设计SQL执行计划;严格过滤数据。



合理的使用新特性,可以避免重复访问数据,合并简化执行操作过程,缓存中执行间结果,减少自关联,高效灵活的处理一些复杂问题。因此,充分理解新特性的功能以及其适用场景,是书写高效SQL语句的基础。


 SQL本身是描述性语言,大部分情况下使用SQL的时候并不需要特别关注每行数据如何去处理,将数据整理处理作为思路,会发现SQL的性能会更好,而且很多时候SQL的写法也会更加简洁。

 


好的性能是设计出来的,因此如果想写出高效的SQL语句,要从一开始就考虑好这个SQL的执行计划,驱动表是谁,采用何种JOIN方式连接到被驱动表。设计思路是一方面,另一方面是保证执行计划符合设计思路,这时候就需要用到提示的功能。熟悉提示的功能,可以更好的控制SQL的执行路径,绕过bug或性能问题,强制SQL按照设计思路去执行。



 过滤不必要的数据对于提升SQL的性能非常重要,对于一个计算10000以内质数的SQL,未经优化前需要1分12秒的执行时间,消耗17万逻辑读。


通过严格的数据过滤,在运行的第一步消除不必要的数据,最终优化后的SQL只需要0.05秒,消耗461的逻辑读,执行时间和逻辑读都有几百倍的提升。



杨廷琨先生是中国地区的第一批Oracle ACE总监,也是 ITPUB 论坛上最活跃的分享者之一,他日均一篇的博客更新坚持了10年之久,影响了很多Oracle DBA和开发者的学习和成长,他在SQL开发方向的积累丰富,对于性能和效率具有深刻理解。


杨廷琨先生作为中国地区技术的杰出代表,与来自世界各地的开发精英以开放的心态,共享技术成果,期间着重强调书写高效SQL的秘诀,除了之前介绍的四点之外,还要下面三个因素:多写多练:熟能生巧;深思熟虑:算法为王;坚持不懈:优化无止境。


演讲PPT下载链接途径:

关注云和恩墨公众号,微信号:enmotech  或扫描下图二维码,回复:yangtingkun

云和恩墨的SQL开发专家,结合SQL审核工具产品 - Z3,正在为用户带来卓越的SQL提升体验,SQL审核,您值得拥有。


数据驱动,成就未来,云和恩墨,不负所托!



云和恩墨
数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。
IT基础架构
专业服务:云化(分布式)数据中心解决方案支撑软件:分布式存储软件
数据架构Oracle DB2 MySQL NoSQL专项服务:混合架构 / 安全 / 容灾 / 优化 / 整合升级迁移运维服务:运维服务  | 云化运维人才培养:个人教育培训 | 在线教育支撑软件:自动化运维软件 | 数据库监控软件
应用架构

专业服务:中间件 | 数据建模与模型优化 | SQL审核与优化

软件产品:SQL审核 - Z3 | 监控 - Zone | 数据恢复 - ODU|智能巡检 - Bethune

业务架构

数据治理 | 电子商务用户行业分析 | 数据资产运营

恩墨学院

恩墨学院是云和恩墨(北京)信息技术有限公司旗下的培训事业部,创业数年专注于数据库认证、技能培训,以专业的讲师塑造品牌,以专业的训练保证就业,目前已经发展成为国内数据库领域培训领导品牌。


Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存