Oracle减少日志量的方法

LGWR进程将LOG BUFFER中的日志条目写往在线日志的条件有如下三个:
 事务提交时。
 LOG BUFFER中的日志条目超过1MB时。
 每隔3秒时。
除此之外,Oracle还通过隐含参数_log_io_size来进一步控制LGWR进程写日志条目,当LOG BUFFER中的日志量超过该参数值时,LGWR进程会被自动激活写日志。该参数值默认为0,表示LOG BUFFER容量的1/3,其单位是REDO LOG BLOCK。如下所示:
NAME VALUE PDESC
------------------------------ ---------- --------------------------------------------------
_log_io_size 0 automatically initiate log write if this many redo

LGWR进程性能的下降直接关系到整个系统的性能,所以减少重做日志量可以从某种程度上减轻系统的压力,以下为常见的减少日志量的方法:
 使用NOLOGGING选项。NOLOGGING有三个级别,分别是SQL级别、表级别、表空间级别。
 通过SQL*LOADER装载大量数据时,使用DIRECT LOAD 选项。
 需要保存临时数据时,尽量使用临时表。使用临时表本身不会创建对于数据的重做日志。
 若LOB数据量较大,使用NO LOGGING属性。
 使用临时表存放中间结果集。
对已经有索引的表执行DIRECT LOAD时,在不影响SELECT语句的前提下,可以按以下步骤进行安装:
(1)将索引修改为UNUSABLE状态。
(2)装载数据。
(3)将以NOLOGGING方式重建索引。
注意 在数据库级别开启了FORCE LOGGING之后,所有的NO LOGGING操作依然会LOGGING。千万不能在生产系统中设置隐含参数_disable_logging,设置成TRUE之后可能会导致数据库无法启动。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值