ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle nologing加快数据加载速度

oracle nologing加快数据加载速度

原创 Linux操作系统 作者:伊思 时间:2010-03-27 14:52:49 0 删除 编辑
项目中反映数据库慢,然后发现其操作大部分是插入数据操作,AWR redo log size量产生很大,日志文件使用也很频繁,所以建议其在插入数据采用nologging模式,对于该模式其实用条件如下:
可以采用NOLOGGING模式执行以下操作:
1 索引的创建和ALTER(重建)。
2 表的批量INSERT(通过/*+APPEND */提示使用“直接路径插入“。或采用SQL*Loader直接路径加载)。表数据不生成redo,但是
所有索引修改会生成redo,但是所有索引修改会生成redo(尽管表不生成日志,但这个表上的索引却会生成redo!)。
3 LOB操作(对大对象的更新不必生成日志)。
4 通过CREATE TABLE AS SELECT创建表。
5 各种ALTER TABLE操作,如MOVE和SPLIT。
在一个ARCHIVELOG模式的数据库上,如果NOLOGGING使用得当,可以加快许多操作的速度,因为它能显著减少生成的重做日 志量。假设你有一个表,需要从一个表空间移到另一个表空间。可以适当地调度这个操作,让它在备份之后紧接着发生,这样就能把表 ALTER为NOLOGGING模式,移到表,创建索引(也不生成日志),然后再把表ALTER回LOGGING模式。现在,原先需要X小时才能 完成的操作可能只需要X/2 小时(运行是会不会真的减少50%的时间,这一点我不敢打保票!)。要想适当地使用这个特性,需要DBA的 参与,或者必须与负责数据库备份和恢复(或任何备用数据库)的人沟通。如果这个人不知道使用了这个特性,一旦出现介质失败,就可 能丢失数据,或者备用数据库的完整性可能遭到破坏。
在本次项目中oracle为10g,数据库也采用noarchivelog模式,所以,对其部分研究发现
SQL> alter table mytest logging;
表已更改。
SQL> insert /*+append*/ into mytest select * from dba_objects;
已创建50040行。

统计信息
----------------------------------------------------------
        254  recursive calls
        727  db block gets
       5411  consistent gets
          0  physical reads
    5689336  redo size
        821  bytes sent via SQL*Net to client
        752  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          7  sorts (memory)
          0  sorts (disk)
      50040  rows processed
SQL> alter database no force logging;
数据库已更改。
SQL> insert /*+append*/ into mytest select * from dba_objects;
已创建50040行。

统计信息
----------------------------------------------------------
          0  recursive calls
        692  db block gets
       5095  consistent gets
          0  physical reads
       1524  redo size
        821  bytes sent via SQL*Net to client
        752  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      50040  rows processed
在经过多次测试发现,只有database 为nologging模式时,/*+append*/才会生效。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23163255/viewspace-630535/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: sqlloader用法
请登录后发表评论 登录
全部评论

注册时间:2010-01-10

  • 博文量
    43
  • 访问量
    111057