问:我现在有一个大数据量的分区表(亿级别,每个月一个分区),已经对超过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