打印本文 打印本文 关闭窗口 关闭窗口
ORACLE SQL性能优化系列 (三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1871  更新时间:2009/4/22 22:08:21  文章录入:mintao  责任编辑:mintao
N(X.ROWID)

                   FROM EMP X

                   WHERE X.EMP_NO = E.EMP_NO);

 

11.       用TRUNCATE替代DELETE

当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是

恢复到执行删除命令之前的状况)

 

而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短.

 

(译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)

 

 

12.       尽量多使用COMMIT

 

只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:

 COMMIT所释放的资源:

a.       回滚段上用于恢复数据的信息.

b.       被程序语句获得的锁

c.       redo log buffer 中的空间

d.       ORACLE为管理上述3种资源中的内部花费

 

(译者按: 在使用COMMIT时必须要注意到事务的完整性,现实中效率和事务完整性往往是鱼和熊掌不可得兼)

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口