Oracle数据库失效对象怎么处理

发布时间:2021-10-19 11:43:57 作者:iii
来源:亿速云 阅读:292

这篇文章主要讲解了“Oracle数据库失效对象怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库失效对象怎么处理”吧!

近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、包、触发器等。

思考:

基于以下原因,建议对失效对象进行处理:

1、通过失效的对象,可能能够反推发现业务软件问题(业务系统功能太多,可能存在测试不充分的问题);

2、如果失效对象太多,业务又频繁调用的话,担心影响数据库性能(未进行测试,个人想法,如有错误请大家指正);

处理方式:

1、先搜索发现失效对象(在sys用户下执行)

select owner, object_name, object_type, status  from dba_objects t  where status='INVALID'  order by t.owner,t.object_type;

2、对失效对象自动生成重编译语句,进行重编译

下面是为视图、函数、物化视图、包、触发器的生成语句。

--自动生成视图重新编译语句
select owner, object_name, object_type, status  ,'alter view ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='VIEW'  order by t.owner,t.object_type;
--自动生成函数重新编译语句
select owner, object_name, object_type, status  ,'alter FUNCTION ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='FUNCTION'  order by t.owner,t.object_type;
--自动生成视物化图重新编译语句
select owner, object_name, object_type, status  ,'alter MATERIALIZED VIEW ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='MATERIALIZED VIEW'  order by t.owner,t.object_type;
--自动生成包重新编译语句
select owner, object_name, object_type, status  ,'alter PACKAGE ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='PACKAGE BODY'  order by t.owner,t.object_type;
--自动生成触发器重新编译语句
select owner, object_name, object_type, status  ,'alter TRIGGER ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='TRIGGER'  order by t.owner,t.object_type;

生成语句后复制处理批量执行即可

3、重新编译应该会解决掉一部分的失效对象,但是仍然会有部分对象无法通过重新编译解决。对于这部分对象,需要进行人工的逐个分析,现场可以确认的进行确认处理(有用则修改,无用则删除),现场不能确认的可以和研发确认,最终完成对失效对象处理的目的。

如果最终仍有部分无人可以确认,建议先暂时保留即可。

感谢各位的阅读,以上就是“Oracle数据库失效对象怎么处理”的内容了,经过本文的学习后,相信大家对Oracle数据库失效对象怎么处理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. oracle数据库clob字段处理
  2. 浅谈Oracle数据库的对象

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 数据库

上一篇:MYSQL存储过程的示例分析

下一篇:怎么用Java实现追书神器

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》