《基于 Oracle 的 SQL 优化》作者谈 SQL 优化的重要性

  • 姚琪琳

2013 年 11 月 27 日

话题:Oracle数据库语言 & 开发架构

在刚刚结束的 Oracle 技术嘉年华上,Oracle ACE、中航信资深 DBA崔华发布了个人新书《基于 Oracle 的 SQL 优化》。InfoQ 对他进行了简短的采访,谈了谈这本书的写作初衷以及对 Oracle 的展望。

InfoQ:为什么会写这样一本关于 SQL 优化的书?

随着我这几年在国内 Oracle 圈子里知名度的提高,使得我有机会接触到各种各样有问题的系统,在做了大量的实际诊断和优化工作后我发现,绝大多数的系统的性能问题都是由于当初开发人员不懂 Oracle 数据库、不懂如何在 Oracle 数据库里写出高质量的 SQL 所导致。这样的系统的性能问题,单靠高水准的 Oracle DBA 来调整是非常痛苦的一件事情,很多时候是事倍功半。

为了能从根本上解决这种问题,扭转这种局面,我萌生了撰写一本专门的、系统的、从本质上阐述如何在 Oracle 数据库里写出高质量的 SQL 的一本书,这就是《基于 Oracle 的 SQL 优化》这本书的由来。我希望通过这本书教会所有阅读过本书的开发人员如何在 Oracle 数据库里写出高质量的 SQL 以及如何在 Oracle 数据库里对有性能问题的 SQL 做诊断和调整,这样就能从源头上保证由这些开发人员所开发的系统在 SQL 上是没有性能问题的,随之而来的那些由于 SQL 的撰写不当而导致的各种性能问题也就不复存在了,如果真能做到这一点,我个人认为会是一件功德无量的事情。

InfoQ:SQL 优化对应用系统的意义是什么?

数据库性能优化是系统生命周期中不可缺少的一环,我们大多数的数据库都或多或少遇到一些性能问题。特别是随着业务的发展、数据量的增加、系统用户数的增多、以及系统之间越来越复杂的接口,都会导致系统的性能越来越恶化。怎么样去优化一套数据库,我们需要掌握很多的知识,包括存储子系统、操作系统、数据库甚至还有业务逻辑。很多人面对性能问题不知如何下手。

好在,数据库的性能问题至少有 80% 以上都是由于 SQL 性能较差所导致,同时随着硬件性能的提升和硬件价格越来越便宜,硬件所带来的系统瓶颈相对越来越小,所以在大多数情况下,我们优化数据库也就是优化 SQL 语句。这意味着只要我们做好了 SQL 优化,我们在大多数情况下就能保证应用系统在数据库端是没有明显性能问题的。

InfoQ:面对 NoSQL 的冲击,传统关系型数据库的定位是什么?

我个人觉得 NoSQL、大数据相关技术并不会对像 Oracle、DB2 这样的传统关系型数据库厂商造成大的冲击,更不用谈取代了——因为它们各自的适用场景并不相同。

事实上,像 Oracle、DB2 这样的传统关系型数据库厂商并不排斥 NoSQL 和大数据相关技术,比如我看到 Oracle 应对 NOSQL 和大数据技术的措施为:

  1. 提供对 NoSQL 的支持功能(如基于 Berkeley DB 的 Oracle 自己的 NoSQL)
  2. 提供了专门针对大数据的软硬一体的解决方案(如 Big Data Appliance 大数据一体机)

我个人认为像 Oracle、DB2 这样的传统关系型数据库厂商未来的定位会是拥抱像 NoSQL 和大数据这样的新技术并朝着云数据库的方向发展——未来会出现大规模公有云和私有云的盛行,到时候用户用数据库就好像现在用水电一样方便,是真正的 DBaaS(Database as a service)。

《基于 Oracle 的 SQL 优化》适合使用 Oracle 数据库的开发人员、Oracle DBA 和其他对 Oracle 数据库感兴趣的读者,也可以作为各院校相关专业的教学辅导和参考用书。该书目前已经在China-Pub亚马逊预售,详细内容可参看相关页面。

Oracle数据库语言 & 开发架构