WEB开发网
开发学院数据库Oracle 提高Oracle的Insert、Update等操作速度 阅读

提高Oracle的Insert、Update等操作速度

 2009-06-08 13:15:53 来源:WEB开发网   
核心提示: 不过如果采用这个可选项的话,也有一个缺点,提高Oracle的Insert、Update等操作速度(2),因为其不会产生重做日志,所以如果数据更新失败或者出现其他一些意外故障,最好能够调整这个重做日志文件的大小,以减少重做日志归档的等待时间,就不能够利用重做日志来恢复数据,为此如果对于数据的

不过如果采用这个可选项的话,也有一个缺点。因为其不会产生重做日志,所以如果数据更新失败或者出现其他一些意外故障,就不能够利用重做日志来恢复数据。为此如果对于数据的准确性要求非常苛刻的话,采用这种方式来提高这些操作的执行速度,可能并不是一种合理的方法。其是以牺牲数据的安全性来获取性能上的改进。虽然这些操作出现故障的几率比较少见,但是在使用这个可选项时,数据库管理员必须要了解这个风险。在可能的情况下,即使做好风险的评估与预防。

建议二:调整重做日志的大小来提高执行速度。

上面这种方法由于不产生重做日志,虽然提高了执行的速度,但是也带来了一定的安全风险。那么是否有两全其美的方法呢,即能够提高执行速度,又能够保障数据的安全呢?在Oracle数据库中就有这么一个两全其美的方法。就是调整重做日志的大小来提高执行速度。来具体讲解这个方案时,笔者要强调的是此时数据库仍然会产生重做日志。为此其效果没有上面这种方法好。但是其可以保障数据的安全,在出现问题时,仍然可以利用重做日志来恢复数据。所以说,这是在安全与速度之间实现了一个均衡。

在对记录进行大批量的更新时,在重做日志中产生相关的记录会花费比较多的时间。其实这个时间也可以分为两个部分。一是往重做日志中记录相关信息的时间;二是重做日志进行切换的时间。在Oracle数据库的联机重做日志中,往往同时有多个重做日志文件。当某个重做日志文件满时,则会将后续的记录写到下一个重做日志文件中。但是在写入之前,其需要对这个即将被覆盖的重做日至进行归档,也就是进行备份。在这个备份的时候,Update等更新操作不得不进行等待。要等待其归档完成之后,再继续进行更新并产生重做记录。也就是说,联机重做日志只有在被归档后才能够被覆盖,在这个归档的过程中,其他相关的操作必须等待,直到有可能的联接重做日志。为此,如果这个重做日志的文件比较小,而利用Update更新的记录又比较多时,此时就可能需要使用多个重做日志文件来保存这些更改信息。此时就需要进行多次等待才行。那么就无形之中增加了这个操作的执行时间。所以,经常需要对数据库进行大容量的更新、删除或者插入记录等操作的,最好能够调整这个重做日志文件的大小,以减少重做日志归档的等待时间,提高数据库的性能。

Tags:提高 Oracle Insert

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接