Oracle-nologging 应用
我们在使用 MS SqlServer 时,为了提高DML速度,往往会用no log 来设置语句不写日志,这样语句执行过程就会快一些。同样,在删除数据时,也会用truncate table tbName
来替代delete from tbName
,那么在oracle 中如何使用?
Oracle nologging 使用总结
- 一、Oracle 对logging 与nologging的控制
Oracle 在4个级别提供对操作是否记录redo日志尽心控制
- 数据库级别
Force_logging:数据库级别开启force_logging,将忽略一切nologging的操作,及时显式的加上nologging也不起作用。所以搭建物理standby时,一定要将force logging 开启。
开启关闭语句
alter database force logging;
alter database no force logging;
- 表空间级别
alter tablespace users logging
alter tablespace users nologging
--查看表空间的日志记录
select tablespace_name force_logging,logging from dba_tablespaces where tablespace_name=upper('users')
- 对象级别
--logging 属性取值为yes或no,对该对象的更改是否记录日志
--查询对象的nologging属性
select logging from dba_tables where table_name='T'
--对对象的logging 开启与关闭
alter table t logging;
alter table t nologging;
- 语句级别
--指定该sql语句是否记录日志,默认依赖对象的logging属性
insert into nologging select object_id,object_name from dba_ojects;
select * from tbName nologging where 1=1
二、nologging 的好处与影响
- 好处
(1)可以大大减少插入大型表的时间
(2)提高并行创建大型表或索引的性能
(3)减少日志生成量,节省磁盘空间 - 影响
(1)无法从重做日志中恢复更改,带来数据丢失的风险
(2)对物理standby,数据库一旦应用了无效的重做日志,所有相应数据块将标记为逻辑坏块,查询引用时将报错
(3)对于逻辑 standby,sql apply 会忽略无效的重做日志,因为它无法将其转换为有效的sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!