网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.数据库乱码的原因与解决.
.ORACLE 10g认证6月将正式登场.
.Oracle 8.0使用技巧.
.sga中的名词解释.
.oracle开发 TNS-12500的解决过程.
.查查oracle函数宝典,看看函数大.
.配置Windows与Linux平台的DATA G.
.Windows下如何彻底删除Oracle.
.TestKing Oracle 1z0-031 V9.
.在P4机器上安装Oracle 8i.
.ORACLE性能诊断―学习statspack笔.
.RH9下最简单的WebMail的实现方案.
.Oracle使用若干技术.
.[转载] 编写安全的 Transact-SQL.
.oracle中变异表触发器的处理.
.CERN应用Oracle9iAS提高网络应用.
.Oracle中SQLPLUS的常用指令收集与.
.物化视图高级复制中ORA-23313错误.
.oracle联机热备原理及rman增量备.
.ORACLE 面试问题-技术篇(2).

ORACLE SQL性能优化系列(七)

发表日期:2008-2-9


12.       尽量多使用COMMIT 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:  COMMIT所释放的资源: a.       回滚段上用于恢复数据的信息. b.       被程序语句获得的锁 c.       redo log buffer 中的空间 d.       Oracle为治理上述3种资源中的内部花费 (译者按: 在使用COMMIT时必须要注重到事务的完整性,现实中效率和事务完整性往往是鱼和熊掌不可得兼) 13.       计算记录条数      和一般的观点相反, count(*) 比count(1)稍快 , 当然假如可以通过索引检索,对索引列的计数仍然是最快的. 例如 COUNT(EMPNO)
(译者按: 在CSDN论坛中,曾经对此有过相当热烈的讨论, 作者的观点并不十分准确,通过实际的测试,上述三种方法并没有显著的性能差别)
14.       用Where子句替换HAVING子句      避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 假如能通过WHERE子句限制记录的数目,那就能减少这方面的开销.
例如:
     低效:      SELECT REGION,AVG(LOG_SIZE)      FROM LOCATION      GROUP BY REGION      HAVING REGION REGION != ‘SYDNEY’      AND REGION != ‘PERTH’      高效      SELECT REGION,AVG(LOG_SIZE)      FROM LOCATION      WHERE REGION REGION != ‘SYDNEY’      AND REGION != ‘PERTH’      GROUP BY REGION (译者按: HAVING 中的条件一般用于对一些集合函数的比较,如COUNT() 等等. 除此而外,一般的条件应该写在WHERE子句中) 15.       减少对表的查询
在含有子查询的SQL语句中,要非凡注重减少对表的查询. 例如:
     低效           SELECT TAB_NAME           FROM TABLES           WHERE TAB_NAME = ( SELECT TAB_NAME                                 FROM TAB_COLUMNS                                 WHERE VERSION = 604)           AND DB_VER= ( SELECT DB_VER                            FROM TAB_COLUMNS                            WHERE VERSION = 604)      高效           SELECT TAB_NAME           FROM TABLES           WHERE  (TAB_NAME,DB_VER)  = ( SELECT TAB_NAME,DB_VER)                   FROM TAB_COLUMNS                    WHERE VERSION = 604)      Update 多个Column 例子:      低效:

           UPDATE EMP            SET EMP_CAT = (SELECT MAX(CATEGORY) FROM EMP_CATEGORIES),               SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM EMP_CATEGORIES)            WHERE EMP_DEPT = 0020;     高效:            UPDATE EMP            SET (EMP_CAT, SAL_RANGE)  = (SELECT MAX(CATEGORY) , MAX(SAL_RANGE)  FROM EMP_CATEGORIES)            WHERE EMP_DEPT = 0020;
上一篇:ORACLE SQL性能优化系列(八) 人气:898
下一篇:ORACLE SQL性能优化系列(九) 人气:891
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐