最近数据中心数据库需要做清理,把一些不用的数据或表清理掉,
但涉及到的应用又比较多,需要先了解应用之间的关系,
使用dba_dependencies视图来查看各个表对应的应用程序。[@more@]
常用的有几种情形:
1、批量查看视图所依赖的表,当需要查看很多视图的时候,
就会发现一个一个视图点开来看是一件多么痛苦的事。
2、对于某些表,有哪些存储过程、函数、包引用了它,
如果你想都不想就把一个自认为没人用的表给删除掉了,
说不准马上就会有人来骂你了。在删除或清理某个表的数据之前,
最好检查一下有谁的程序在用它。
—第一种查询方法:
select *
from dba_dependencies x
where x.referenced_owner = ‘DW_30’
and x.referenced_name in (upper(‘dim_user_info_base’), ‘VW_DIM_USER_INFO_BASE’);
—第二种查询方法:
select *
from dba_source
where lower(text) like ‘%user_info_base%’;
–查看之前写的存储过程里的源代码
select *
from dba_source --存放的是按行的代码
where owner = ‘DM_00’
and name = ‘PKG_DM_QWH_CORE’
order by type,line;
–每天备份一下,到时候从这个表中找到之前写的代码
insert into user_code_backup
select sysdate,t.*
from dba_source t
where owner like ‘DM%’
or owner like ‘DM%’;