Oracle数据库失效对象处理

Oracle数据库失效对象处理近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、包、触发器等。 思考: 基于以下原因,建议对失效对象进行处理

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6204.html

(0)
上一篇 2023-04-15
下一篇 2023-04-15

相关推荐

  • 云小课|MRS基础原理之Hudi介绍「终于解决」

    云小课|MRS基础原理之Hudi介绍「终于解决」阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Hudi是数据湖的

    2023-06-12
    148
  • 大数据flink的作用_hadoop和flink

    大数据flink的作用_hadoop和flink一、DataStream API概述 Flink 中的 DataStream 程序是对数据流(例如过滤、更新状态、定义窗口、聚合)进行转换的常规程序。数据流的起始是从各种源(例如消息队列、套接字流、文

    2023-05-15
    161
  • Mariadb之半同步复制集群配置 – Linux[亲测有效]

    Mariadb之半同步复制集群配置 – Linux[亲测有效]首先我们来了解下在mariadb/mysql数据库主从复制集群中什么是同步,什么是异步,什么是半同步;所谓同步就是指主节点发生写操作事件,它不会立刻返回,而是等到从节点接收到主节点发送过来的写操作事件

    2023-03-18
    161
  • 安装tesseract

    安装tesseract鉴于不同操作系统的差异,tesseract的安装方法也有所不同,但总体来说,tesseract的安装可以概括为以下几个步骤:

    2024-08-12
    24
  • sql的计算语句_sql语言中创建一个表的命令是什么

    sql的计算语句_sql语言中创建一个表的命令是什么本文介绍什么是计算字段,如何创建计算字段,我们用例子说明了计算字段在字符串拼接和算术计算中的用途。以及如何从应用程序中使用别名引用它们。 一、计算字段 存储在数据库表中的数据一般不是应用程序所需要的格

    2023-05-16
    155
  • Oracle学习(一) — 入门安装「终于解决」

    Oracle学习(一) — 入门安装「终于解决」一、简介 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统…

    2023-03-01
    150
  • Python GUI编程:安装使用Tkinter进行界面设计

    Python GUI编程:安装使用Tkinter进行界面设计Graphical User Interface(图形用户界面)是现代软件中不可缺少的一部分,它提供了一种更亲近、直观的界面,使用户能够以更方便的方式与程序交互。而Python Tkinter(Toolkit Interface)是Python标准库中内置的一款GUI工具包,它提供了创建基本GUI应用程序所需的组件和控件,并且容易学习和使用。

    2024-03-10
    99
  • NOSQL入门「终于解决」

    NOSQL入门「终于解决」什么是NoSQL? NoSQL (Not Only SQL),指的是非关系型的数据库。是对不同于传统的关系型数据库的数据库管理系统的统称。 轻量、开源、不提供SQL功能的关系数据库。 NoSQL用于…

    2023-02-06
    164

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注