ALTER TABLE test NOLOGGING;

解决方案 »

  1.   

    修改数据库日志模式为不记录日志,就如:create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,
    'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k nologging
      

  2.   

    to lynx(lynx):
        这种方法好像还是产生日志。to libin_ftsafe(子陌红尘):
        我只想让几个表的操作不产生日志,其他表仍然要产生日志。
      

  3.   

    1.不可能不产生redo log,这是ORACLE实现方式决定的
    2.记录redo log的开销很小,不知道“占满服务器内存”是什么概念,如果是PGA持续增长,肯定是应用程序引起的
      

  4.   

    to  nebulaly(nebulaly):
       是占满服务器硬盘。
      

  5.   

    好像以前看过一篇帖子说PB导入数据可以不产生redo log。
      

  6.   

    ALTER TABLE test NOLOGGING;
    已经是把你的redo log开销降到最小了。
    如果发现不起作用,检查你的数据库是否运行在force logging 模式下, 该模式下NOLOGGING无效。
      

  7.   

    Normal inserts/updates/deletes on the table are logged as normal.  nologging 
    only affects certain operations like direct path loads and such on the object.http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:366018048216
      

  8.   

    to  lynx(lynx) :
       数据库运行在logging模式下,这个是不能改变的,因为有些重要的表必须有归档日志,而不需要日志的表就几个?有什么好办法?
      

  9.   

    to nebulaly(nebulaly) :
       如何调整应用程序设计?对这几个表我需要每1分钟插入几千条记录。
      

  10.   

    如果不需要查询实时数据,可以考虑写入文件,批量用sqlloader倒进去如果业务上不允许,就建临时表保存中间的插入结果,truncate临时表
    因为delete生成的redo log远远多于insert
      

  11.   

    如果删除记录可用如下方法
    TRUNCATE TABLE tablename
    将清空所有记录并不产生日志