在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
近期对数据库进行巡检,发现数据库业务用户(非 思考: 基于以下原因,建议对失效对象进行处理: 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、重新编译应该会解决掉一部分的失效对象,但是仍然会有部分对象无法通过重新编译解决。对于这部分对象,需要进行人工的逐个分析,现场可以确认的进行确认处理(有用则修改,无用则删除),现场不能确认的可以和研发确认,最终完成对失效对象处理的目的。 如果最终仍有部分无人可以确认,建议先暂时保留即可。 到此这篇关于 |
请发表评论