上等价的不同优化方案做出权衡,产生有可能是最优的查询执行方案。
然而,要记住的关键一点是,尽管优化器在SQL查询的“非关系操作层”也偶有用途,但以关系
理论为支柱的优化器主要用于关系操作层。SQL查询的等价变换还提醒我们:SQL原本就是一
种声明性语言(declarativelanguage)。换言之,SQL应该是用来表达“要做什么”、而非“如何来
做”的。理论上讲,从“要做什么”到“如何来做”的任务就是由优化器来完成的。
在第1章、第2章中讨论的SQL查询比较简单,但即使从编写技巧层面来说,拙劣的查询语句也
会影响优化器的效率。切记,关系理论的数学基础为数据处理提供了非常严谨的逻辑支持,因
此SQL艺术本应注重减小“非关系操作层”的厚度,即尽量在关系操作层完成大部分处理,否则
优化器在“非关系操作层”难以保证返回的结果数据和原始查询执行的结果一样。
另外,在执行非关系操作时(这里非关系操作不严格地定义为针对已知结果集的操作),应专注
于操作那些解决问题所必需的数据,不要画蛇添足。和当前记录不同,有限数据集必须以某种
方式进行临时存储(内存或硬盘),这会带来惊人的开销。随着结果集数据量的增大,这种开销
会急剧加大,尤其是在主存所剩无几的时候。主存不足会引发硬盘数据交换等开销很高的活动。
而且,别忘了“索引所指的是硬盘地址,并非临时存储地址”,所以数据一旦进行临时存储,就意
味着我们向最快的数据访问方式说再见了(哈希方式可能例外)。
一些SQL方言会误导用户,使他们认为自己仍在关系世界中——但其实早就不是关系操作了。
举个简单的例子:不是经理的员工当中,哪五个人收入最高?这是个现实生活中很合理的问题,
…………………………………………………………Page 33……………………………………………………………
但它包含了明显的非关系描述。“找出不是经理的员工”是其中的关系操作部分,由此获得一个有
限的员工集合,然后排序。有些SQL方言通过在select语句中增加特殊子句来限制返回的记录数,
很显然,排序和限制记录数都是非关系操作。其他SQL方言(这里主要是指 Oracle)则采用另
外的机制,即用一个名为rownum的虚拟字段(dummycolumn)为查询结果编号——这意味着
编号工作发生在关系操作阶段。如果查询语句如下:
select empname; salary
from employees
where status != "EXECUTIVE"
and rownum
小说推荐
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- SQL 21日自学通(V3.0)(PDF格式)
- -Page 1-SQL 21 日自学通(V1.0 翻译人 笨猪目录目录 1译者的话 14第一周概貌 16从这里开始 16
- 其他
- 最新章:第170章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 其他
- 最新章:第309章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 其他
- 最新章:第26章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- 电子电路大全(PDF格式)
- -Page 1-电力生产人员技能培训电路基础部分电路基础部分电电路路基基础础部部分分-Page 2-一、电路的基本概念和基本定律-Page 3-考试点1o 1、掌握电阻、独立电压源、独立电流源、11受控源、电容、电感、耦合电感、理想变压器诸元件的定义、性质2o 2、掌握电流、电压参考方向的概念223
- 其他
- 最新章:第353章