提高Oracle的Insert、Update等操作速度
2009-06-08 13:15:53 来源:WEB开发网在Oracle数据库中,Insert、Update、Delete三个操作是对数据库中的数据进行插入、更新以及删除。在进行这些操作时,如果数据库中的记录比较多时,则所需要的时间比较长。如需要利用一个Update语句更新大量记录时,即使更新的内容很简单,如只是将价格提升10%,但是仍然需要花费比较成的时间。所以从某种程度上来说,进行这些操作时其执行速度跟内容的大小关系不大,反而跟记录的多少却有很大的关系。那么在Oracle数据库中,能否采取一些措施来提高这些操作的速度呢?为此笔者有如下两个建议,希望对大家有所帮助。
建议一:在执行这些操作时不向重做日志中写东西。
在执行更新、插入、删除操作时,默认情况下,其在更新数据的同时,也会像重做日志文件中记录这些改变。如利用Update语句将数据库中产品的价格提高10%时。数据库会更改这些价格,同时也会在重做日志中记录这些改变。显然,更新一个数据,数据库要进行两项工作。为此,当更新所涉及到的记录比较多时,这个更新操作就可能要耗费比较长的时间。此时,可能需要更新内容本身字符的多少,跟其更新的效率并不具有很大的联系。其执行的速度主要跟其更新所涉及到的记录数量有关。
为此,有时候在追求其更快的执行速度时,我们往往需要在这些语句中加入一个nologging选项。如在使用Update语句更新价格信息时,加上这个Nologging选项就可以显著提高其执行的速度。更新操作所涉及到的记录越多,其效果越明显。那么这个可选项到底有什么作用呢?顾名思义,这个参数就是告诉数据库系统,在执行这个操作的时候,不要忘重做日志中记录相关的信息。也就是说,此时数据库系统只需要做一件工作即可,至需要更改数据,而不会产生重做日志文件。在理想的状态下,这么设置可以将这些操作的速度提高一倍。所以在进行大规模的更新、删除、插入记录等操作时,笔者往往建议大家加上这个可选项,以提高执行的速度。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接