首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 性能调优 >> 正文

Oracle语句优化53个规则详解

 49.       优化GROUP BY

 提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。下面两个查询返回相同结果但第二个明显就快了许多。

    低效:

 SELECT JOB , AVG(SAL)
    FROM EMP
 GROUP by JOB
 HAVING JOB = ‘PRESIDENT’
 OR JOB = ‘MANAGER’

 高效:

 SELECT JOB , AVG(SAL)
    FROM EMP
 WHERE JOB = ‘PRESIDENT’
 OR JOB = ‘MANAGER’GROUP by JOB

 译者按:本节和14节相同。 可略过。

    50.       使用日期当

 使用日期是,需要注意如果有超过5位小数加到日期上, 这个日期会进到下一天!

    例如:

 1.

 SELECT TO_DATE(‘01-JAN-93’+.99999)
    FROM DUAL;
 Returns:“01-JAN-93 23:59:59‘

 2.

 SELECT TO_DATE(’01-JAN-93‘+.999999)
    FROM DUAL;
    Returns:“02-JAN-93 00:00:00‘

 译者按:虽然本节和SQL性能优化没有关系, 但是作者的功力可见一斑

 51.   使用显式的游标(CURSORs)

    使用隐式的游标,将会执行两次操作。 第一次检索记录, 第二次检查TOO MANY ROWS 这个exception . 而显式游标不执行第二次操作。

    52.   优化EXPORT和IMPORT

 使用较大的BUFFER(比如10MB , 10,240,000)可以提高EXPORT和IMPORT的速度。

    ORACLE将尽可能地获取你所指定的内存大小,即使在内存不满足,也不会报错。这个值至少要和表中最大的列相当,否则列值会被截断。

    译者按:可以肯定的是, 增加BUFFER会大大提高EXPORT , IMPORT的效率。 (曾经碰到过一个CASE, 增加BUFFER后,IMPORT/EXPORT快了10倍!)

    作者可能犯了一个错误: “这个值至少要和表中最大的列相当,否则列值会被截断。 ”其中最大的列也许是指最大的记录大小。

    关于EXPORT/IMPORT的优化,CSDN论坛中有一些总结性的贴子,比如关于BUFFER参数, COMMIT参数等等, 详情请查。

    53.   分离表和索引

 总是将你的表和索引建立在不同的表空间内(TABLESPACES)。 决不要将不属于ORACLE内部系统的对象存放到SYSTEM表空间里。 同时,确保数据表空间和索引表空间置于不同的硬盘上。

    译者按:“同时,确保数据表空间和索引表空间置与不同的硬盘上。”可能改为如下更为准确 “同时,确保数据表空间和索引表空间置与不同的硬盘控制卡控制的硬盘上。”

 << 上一页  [11] [12] 

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航