ITPub博客

首页 > 数据库 > Oracle > Ask Hoegh(3)——对delete操作设置NOLOGGING能否加快速度?

Ask Hoegh(3)——对delete操作设置NOLOGGING能否加快速度?

原创 Oracle 作者:hoegh 时间:2016-01-14 09:56:29 0 删除 编辑

问:我现在有一个大数据量的分区表(亿级别,每个月一个分区),已经对超过3个月的数据进行了归档备份,在清理这些数据时,计划对delete操作设置NOLOGGING来加快速度,这个想法可行吗?



答:不可行。因为NOLOGGING支持很多SQL语句,但是不包括delete操作。这种情况下,建议直接对分区表执行truncate操作。

对于数据库而言,重做日志至关重要,它不是开销,不是浪费。不过,有些情况下执行某些操作确实可以不生成重做日志。那么哪些操作是允许NOLOGGING呢?首先需要注意的是普通的DML操作,即:常规insert,update,和delete(以及merge)是不支持的。但以下SQL语句则可以NOLOGGING选项执行:

l  direct load (SQL*Loader)

l  direct load INSERT (using APPEND hint)

l  CREATE TABLE … AS SELECT

l  CREATE INDEX

l  ALTER TABLE … MOVE PARTITION

l  ALTER TABLE … SPLIT PARTITION

l  ALTER INDEX … SPLIT PARTITION

l  ALTER INDEX … REBUILD

l  ALTER INDEX … REBUILD PARTITION

l  INSERT, UPDATE, and DELETE on LOBs in NOCACHE NOLOGGING mode stored out of line

关于NOLOGGING设置的具体信息,可以参考我之前翻译的官方文档:http://blog.itpub.net/30162081/viewspace-1976252/

另外,关于NOLOGGING操作,需要注意以下几点:

l  事实上,还是会生成一定数量的redo,主要是保护数据字典,这是不可避免的。

       l  执行NOLOGGING操作后,必须尽快为受影响的数据文件建立一个新的基线备份,从而避免由于介质失败而丢失的由NOLOGGING操作创建的数据。


hoegh
2016.01.14
-- The End --


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

请登录后发表评论 登录
全部评论

注册时间:2015-03-13

  • 博文量
    132
  • 访问量
    2219919