网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.9iDBMS_STATS包收集统计信息.
.MSSQL7.0SysbaseAccess向Oracle8.
.注意:Oracle中的联合主键查询问.
.Oracle新手最常碰到的6个错误及解.
.Oracle 和 MIcrosoft SQL 的不同.
.Oracle管理存储过程.
.Oracle中建立索引并强制优化器使.
.你的Oracle数据库安全吗?.
.sendmail如何允许某个地址邮件转.
.Oracle Database 10 g : 为 DBA .
.ORACLE坏块(ORA-01578)处理方法.
.Oracle优化经典文章------索引原.
.Oracle9i中定义视图约束.
.项目中的oracle开发技巧.
.Oracle创造Linux平台TPC-C测试纪.
.Linux环境主要数据库简介.
.Oracle监听器启动路径为空导致服.
.解决方案:Oracl数据库中大数据的.
.RedHat 日志文件.
.Oracle 10g数据库的安全性和身份.

ORACLE SQL性能优化系列(三)

发表日期:2005-12-23


4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)

ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并.


例如:

     表 TAB1 16,384 条记录

     表 TAB2 1      条记录

     选择TAB2作为基础表 (最好的方法)

     select count(*) from tab1,tab2   执行时间0.96秒

    选择TAB2作为基础表 (不佳的方法)

     select count(*) from tab2,tab1   执行时间26.09秒


如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.


例如:


   EMP表描述了LOCATION表和CATEGORY表的交集.


 SELECT *


FROM LOCATION L ,


      CATEGORY C,

      EMP E

WHERE E.EMP_NO BETWEEN 1000 AND 2000


AND E.CAT_NO = C.CAT_NO


AND E.LOCN = L.LOCN

 

将比下列SQL更有效率

 

SELECT *


FROM EMP E ,

LOCATION L ,

      CATEGORY C

WHERE  E.CAT_NO = C.CAT_NO

AND E.LOCN = L.LOCN

AND E.EMP_NO BETWEEN 1000 AND 2000

上一篇:ORACLE SQL性能优化系列(二) 人气:8352
下一篇:ORACLE SQL性能优化系列(四) 人气:8788
浏览全部ORACLE SQL性能优化的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐