暂无图片
分享
吾亦可往
2024-05-18
在 Oracle 数据库中,某系统的联机重做日志文件频繁切换,导致系统性能受到一定影响,分析可能的原因有哪些,以及应该如何排查和解决这个问题?

在 Oracle 数据库中,某系统的联机重做日志文件频繁切换,导致系统性能受到一定影响,分析可能的原因有哪些,以及应该如何排查和解决这个问题?

收藏
分享
4条回答
默认
最新
张芝

原因:

基本上都是增删改操作,一般情况是频繁刷新物化视图、程序bug或程序需求进行大量增删改数据,永久表当临时表用,每次还都是delete

排查方法:

先从归档日志确定是否存在峰值情况,如果有峰值去分析峰值时段归档日志操作了什么从而定位。

如果没有峰值你可以分时段找几个归档分析每个归档动哪个操作最平凡。

长期你可以做表大小统计,观察一段时间也可以揪出来哪个表。

解决方法:

降低物化视图刷新频率,或者改为普通视图

临时用的中转表就改为临时表

看情况把delete改为truncate

如果还是需要大量的delete类似删除历史数据的,可以根据情况改为分区表去删除

如果以上都没有优化空间可以适当扩大增多redo

暂无图片 评论
暂无图片 有用 1
打赏 1
暂无图片
西瓜你个吧啦

原因:

基本上都是增删改操作,一般情况是频繁刷新物化视图、程序bug或程序需求进行大量增删改数据,永久表当临时表用,每次还都是delete

排查方法:

先从归档日志确定是否存在峰值情况,如果有峰值去分析峰值时段归档日志操作了什么从而定位。

如果没有峰值你可以分时段找几个归档分析每个归档动哪个操作最平凡。

长期你可以做表大小统计,观察一段时间也可以揪出来哪个表。

解决方法:

降低物化视图刷新频率,或者改为普通视图

临时用的中转表就改为临时表

看情况把delete改为truncate

如果还是需要大量的delete类似删除历史数据的,可以根据情况改为分区表去删除

如果以上都没有优化空间可以适当扩大增多redo



暂无图片 评论
暂无图片 有用 2
打赏 1
西瓜你个吧啦
为啥他抄袭我的你采纳他的,呜呜呜
暂无图片 评论
暂无图片 有用 0
打赏 0
情线

DML,DDL操作都会产生日志,切换频繁有可能是日志文件太小导致,可以增加日志文件大小来缓解切换频繁的问题。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
报错误:ora--1555 :快照过旧:回退段号 9(名称为 "_SYSSMU9_1650507775$")过小)
回答 7
感谢感谢
oracle 一个表和一个视图联合更新,表的索引字段和视图的对应字段类型一样,但是最大长度不一样,索引还有效果吗?
回答 1
已采纳
类型一致就行。看执行计划就行。前提是要有有效的where条件就行。
Oracle:impdp开并行的时候 如果只有1个文件,这时候进程数量应该是多少个?
回答 1
主要是看你有几个CPU,你开和CPU数量差不多就行。能发挥出来并行。
Oracle允许非null的空字符吗?
回答 2
已采纳
不允许。这本身也不严谨。
centos 8上能安装oracle11g吗?这个问题怎么解决?
回答 3
可以参考一下我发布的文档,重点检查一下你安装的包。注意yuminstall那块。以下是传送门。Oracle11G静默安装
oracle 数据库的表覆盖以后要重新导入?
回答 1
没看懂。表如果是被全表更新了,你可以用闪回先查查原来的。用闪回来恢复。
insert select 很慢
回答 4
量不算大,建议还是多在select上提升,如分批基于rowid的查询分片多sessioninsert
vm安装oracle11g rac 在安装grid的时候卡在网络接口使用情况上, 如何处理?
回答 1
发报错看下
关于Oracle游标
回答 1
SELECTSID,n.NAMEparaname,s.VALUEusedFROMSYS.v$statnamen,SYS.v$sesstatsWHEREn.NAMEIN('openedcursorscu
奇怪的 ORA-00979: 不是Group BY表达式问题
回答 3
把select的第一个字段改一下,用那个变量。insertintorindcrcardinf(datadt,instid,canclcode,thmnthissind,crdtcardcnt,crdt