低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

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

2013 年 11 月 27 日

在刚刚结束的 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 亚马逊预售,详细内容可参看相关页面。

2013 年 11 月 27 日 06:103034
用户头像

发布了 59 篇内容, 共 18.7 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

在主动要求涨工资这事上,不要学我!从第一份工资800开始说起

四猿外

涨薪 工资 收入 程序员· 跳槽

2021总结全网最新、最全、最实用Java岗面试真题!已收录GitHub

比伯

Java 编程 架构 面试 程序人生

区块链产业革命:解决融资租赁之谜

旺链科技

区块链应用 融资租赁

手把手教学,如何使用低代码快速构建应用程序步骤详解!

优秀

低代码

GitHub上获赞10万star的高并发神级进阶资料,面试官再问高并发问题请你把这篇文章发给他!

Java架构之路

Java 程序员 架构 面试 编程语言

用 Nginx 的 auth_request 模块集成 LDAP 认证

冯骐

Python nginx 运维 ldap 认证

Pgbouncer最佳实践:系列四

PostgreSQLChina

数据库 postgresql 软件 开源社区

Nginx安装后要做的第一件事

运维研习社

nginx WEB安全

云安全和访问管理

龙归科技

云计算 安全 云端 企业安全

史上最全整合第三方登录的开源库

happlyfox

OAuth 2.0 28天写作 3月日更

四面阿里成功斩获offer,在此分享我的复盘经验总结!

Java架构之路

Java 程序员 架构 面试 编程语言

用 Go 写一个轻量级的 ldap 测试工具

冯骐

go golang 运维 开发 ldap

Serverless 极致弹性解构在线游戏行业痛点

阿里巴巴云原生

Serverless 微服务 开发者 云原生 消息中间件

都 2021 年了,也该抛弃 ExpressJS 了

LeanCloud

前端开发 nodejs 框架

神经网络攻防: 02.攻击模型的输出层

P小二

AIPwn AI安全 P小二 神经网络攻防

思科设备漏洞 CVE-2018-0171 的快速修复

冯骐

Python 运维 安全 网络 交换机

炸裂!这份阿里P8大佬手写“Java核心技能精选”惨遭疯抢

Crud的程序员

Java 架构

拍乐云加盟UCloud优云精选计划,构建云上的美好互动

拍乐云Pano

ucloud 云服务 RTC 拍乐云 白板

阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)

周老师

Java 编程 程序员 架构 面试

一个即将从《蚂蚁金服》离职的Java工程师个人经历与总结

Java成神之路

Java 程序员 架构 面试 编程语言

剑指Java面试:面试官能问到的问题,都被我收集在这份PDF文档里

Java成神之路

Java 程序员 架构 面试 编程语言

软件开发,如何快速有效缩短项目周期

雯雯写代码

软件开发

迄今为止最好用的Flink SQL教程:Flink SQL Cookbook on Zeppelin

Apache Flink

flink

交换机配置的自动备份与变更告警

冯骐

Python 运维 网络 备份 multissh

《精通比特币》学习笔记(第一章)

棉花糖

区块链 读书笔记

阿里P7亲自讲解!驱动核心源码详解和Binder超系统学习资源,跳槽薪资翻倍

欢喜学安卓

android 程序员 面试 移动开发

阿里P7亲自讲解!如何快速的开发一个完整的直播app,成功入职腾讯

欢喜学安卓

android 程序员 面试 移动开发

神经网络攻防:03.使用API修改神经网络参数

P小二

AIPwn AI安全 P小二 神经网络攻防

为何每次用完ThreadLocal都要调用remove()?

Java王路飞

Java 程序员 面试 JVM 内存泄漏

面试官:如何用SpringCloud从零设计一个大型电商平台?

Java架构追梦

Java 架构 面试 微服务 SpringCloud

小目标!2021年薪资要个40k,我肝了200个Java面试题给大家!

Java成神之路

Java 程序员 架构 面试 编程语言

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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