知识大全 ORACLE SQL性能优化系列 (三)

Posted 函数

篇首语:生活可以五颜六色,但绝不能乱七八糟。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ORACLE SQL性能优化系列 (三)相关的知识,希望对你有一定的参考价值。

ORACLE SQL性能优化系列 (三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   使用DECODE函数来减少处理时间         使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表          例如:     SELECT COUNT(*) SUM(SAL)     FROM EMP     WHERE DEPT_NO =      AND ENAME LIKE  SMITH% ;          SELECT COUNT(*) SUM(SAL)     FROM EMP     WHERE DEPT_NO =      AND ENAME LIKE  SMITH% ;         你可以用DECODE函数高效地得到相同结果         SELECT COUNT(DECODE(DEPT_NO X NULL)) D _COUNT      COUNT(DECODE(DEPT_NO X NULL)) D _COUNT      SUM(DECODE(DEPT_NO SAL NULL)) D _SAL      SUM(DECODE(DEPT_NO SAL NULL)) D _SAL    FROM EMP WHERE ENAME LIKE SMITH% ;         类似的 DECODE函数也可以运用于GROUP BY 和ORDER BY子句中                整合简单 无关联的数据库访问         如果你有几个简单的数据库查询语句 你可以把它们整合到一个查询中(即使它们之间没有关系)    例如:         SELECT NAME     FROM EMP     WHERE EMP_NO = ;         SELECT NAME     FROM DPT    WHERE DPT_NO = ;         SELECT NAME     FROM CAT    WHERE CAT_TYPE = RD ;         上面的 个查询可以被合并成一个:         SELECT E NAME D NAME C NAME    FROM CAT C DPT D EMP E DUAL X    WHERE NVL( X X DUMMY) = NVL( X E ROWID(+))    AND NVL( X X DUMMY) = NVL( X D ROWID(+))    AND NVL( X X DUMMY) = NVL( X C ROWID(+))    AND E EMP_NO(+) =     AND D DEPT_NO(+) =     AND C CAT_TYPE(+) = RD ;         (译者按: 虽然采取这种方法 效率得到提高 但是程序的可读性大大降低 所以读者 还是要权衡之间的利弊)          删除重复记录    最高效的删除重复记录方法 ( 因为使用了ROWID)         DELETE FROM EMP E    WHERE E ROWID > (SELECT MIN(X ROWID)      FROM EMP X     WHERE X EMP_NO = E EMP_NO);          用TRUNCATE替代DELETE    当删除表中的记录时 在通常情况下 回滚段(rollback segments ) 用来存放可以被恢复的信息 如果你没有MIT事务 ORACLE会将数据恢复到删除之前的状态(准确地说是    恢复到执行删除命令之前的状况)         而当运用TRUNCATE时 回滚段不再存放任何可被恢复的信息 当命令运行后 数据不能被恢复 因此很少的资源被调用 执行时间也会很短          (译者按: TRUNCATE只在删除全表适用 TRUNCATE是DDL不是DML)               尽量多使用MIT         只要有可能 在程序中尽量多使用MIT 这样程序的性能得到提高 需求也会因为MIT所释放的资源而减少:     MIT所释放的资源:    a 回滚段上用于恢复数据的信息     b 被程序语句获得的锁    c redo log buffer 中的空间    d ORACLE为管理上述 种资源中的内部花费         (译者按: 在使用MIT时必须要注意到事务的完整性 现实中效率和事务完整性往往是鱼和熊掌不可得兼) cha138/Article/program/Oracle/201311/18499

相关参考

知识大全 ORACLE SQL性能优化系列 (十三)

ORACLESQL性能优化系列(十三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用WHER

知识大全 oracle数据库sql的优化总结

  自己对oraclesql的一些优化总结自己也记录下来也希望对大家有帮助  一使用where少使用having;  二查两张以上表时把记录少的放在右边;  三减少对表的访问次数;  四有where子

知识大全 oracle认证辅导:oracle优化和管理sql1

  oracle认证辅导oracle优化和管理sql  查看当前正在执行的等待情况  SELECTTAsid  TAseq#  TBUsername  TBTerminal  TBProgram  D

知识大全 Oracle中优化SQL的原则

Oracle中优化SQL的原则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  已经检验的语句和已

知识大全 ORACLE优化SQL语句,提高效率(2)

ORACLE优化SQL语句,提高效率(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  索引是

知识大全 SQL Server 性能优化工具

SQLServer性能优化工具  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据和工作负荷示例

知识大全 系统优化中SQL的性能如何调整

系统优化中SQL的性能如何调整  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一问题的提出   

知识大全 SQL Server 性能优化的原则

SQLServer性能优化的原则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使SQLServ

知识大全 高手详解SQL性能优化十条经验

高手详解SQL性能优化十条经验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  查询的模糊匹配  

知识大全 九大Oracle性能优化基本方法详解

九大Oracle性能优化基本方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle