0 pts.
 Database cleanup
Background: Oracle 9.2.0 running on win2k q1: I need to find out which objects have not been in used for > 6 mths. How do i do this? q2: Before i delete an object, eg, an index, materialized view, view, i need a query to find what are its dependency, so that i would know whether this shld be deleted q3: i also need to know which view, index, table (any object, object-type) is being referenced in a program (PL/SQL, C++). Anyway to run a query that would list this info

Software/Hardware used:
ASKED: October 19, 2005  10:42 PM
UPDATED: November 4, 2005  11:22 AM

Answer Wiki:
Hi, Not sure about q1. But for q2 and q3, you can easily check the same using TOAD. It provides you the TAB (Referentials / Used By) for the dependant and referenced objects. You would be able to get information on procedures / packages written in database. But with reference to the proc*c or c++, i guess you will have to build some logical solution for the same. Regards.
Last Wiki Answer Submitted:  October 21, 2005  4:06 am  by  Techanalyst10   0 pts.
All Answer Wiki Contributors:  Techanalyst10   0 pts.
To see all answers submitted to the Answer Wiki: View Answer History.


Discuss This Question:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _


 

I didnt get any intelligent replies or good suggestions for this task. i’m very sure very exp dbas have from experience, known that SA creates tables, indexes etc objects that are no longer used, but never do any cleanup.

Q1: I need to find a list of objects (tables, indexes, etc) that have not been used for > 6 mths and delete these
Q2: Before i delete, i need to find the dependency (eg any views based on indexes, tables)

Hope someone w this sort of cleanup experience help me

Many thanks in advance

Background: Oracle 9.2.0 running in Win2k

 0 pts.

 

For Q1, not quite sure but one way would be for auditing to be enabled for the objects you are interested in checking.
For other questions (aside from C++ objects), you can utilize Oracle’s Enterprise Manager, (Schema Browser) to look at dependencies as well as TOAD (TOAD is great). As well, here’s an old script that I used to run in SQL*Plus if you don’t have access to the other tools:

accept object_owner char prompt “Enter Object Owner: ”
accept object_name char prompt “Enter Object Name: ”
accept run_control char prompt “Run Control: A)ll, I)nter-App only, B)oth: ”
prompt
prompt

set feed off
rem set termout off

column sqlline newline
set pages 0
spool c:tempx1.sql
select decode(upper(‘&run_control’),’A',’set termout on’
,’B',’set termout on’
,’rem ‘) sqlline
,decode(upper(‘&run_control’),’A',’prompt Running All Dependency Report…’
,’B',’prompt Running All Dependency Report…’
,’rem ‘) sqlline
,decode(upper(‘&run_control’),’A',’set termout off’
,’B',’set termout off’
,’rem A)ll or B)oth not selected.’) sqlline
,decode(upper(‘&run_control’),’A',’r’
,’B',’r’
,’rem ‘) sqlline
from dual;
spool off

spool c:tempx2.sql
select decode(upper(‘&run_control’),’I',’set termout on’
,’B',’set termout on’
,’rem ‘) sqlline
,decode(upper(‘&run_control’),’I',’prompt Running Inter-Application Only Report…’
,’B',’prompt Running Inter-Application Only Report…’
,’rem ‘) sqlline
,decode(upper(‘&run_control’),’I',’set termout off’
,’B',’set termout off’
,’rem I)nter-Aplication Only or B)oth not selected.’) sqlline
,decode(upper(‘&run_control’),’I',’r’
,’B',’r’
,’rem ‘) sqlline
from dual;
spool off

column curr_date_time new_value curr_date_time

column object_name format a45 heading “Object”;
column ref_object_name format a53 heading “Referenced Object”;
column referenced_link_name format a20 heading “Link Name”;

break on object_name skip 2 on report
compute count of ref_object_name on object_name report;

set lines 120
set pages 58
set newpage 0

set termout off;
select to_char(sysdate,’dd-Mon-yyyy hh24:mi:ss’) curr_date_time from dual;
set termout on;

ttitle left ‘Date: &curr_date_time’ -
center “Dependencies to/from (owner.table): &object_owner . &object_name ” -
right ‘Page: ‘ format 999 sql.pno skip 3

spo c:tempdb_impact.lst
select owner||’.'||name||’ (‘||type||’)’ object_name
,referenced_owner||’.'||referenced_name||’ (‘||referenced_type||’)’ ref_object_name
,referenced_link_name
from dba_dependencies
where (name like upper(‘&object_name’) or
referenced_name like upper(‘&object_name’))
and (owner like upper(‘&object_owner’) or
referenced_owner like upper(‘&object_owner’))
order by 1,2
.

@c:tempx1

set lines 120
set pages 58
set newpage 0

set termout off;
select to_char(sysdate,’dd-Mon-yyyy hh24:mi:ss’) curr_date_time from dual
.

@c:tempx2

set termout on;

ttitle left ‘Date: &curr_date_time’ -
right ‘Page: ‘ format 999 sql.pno -
center ‘Dependencies to/from (owner.table): &object_owner . &object_name ‘ skip 1 -
center “*** Inter-Application Dependencies Only ***” skip 3

select owner||’.'||name||’ (‘||type||’)’ object_name
,referenced_owner||’.'||referenced_name||’ (‘||referenced_type||’)’ ref_object_name
,referenced_link_name
from dba_dependencies
where (name like upper(‘&object_name’) or
referenced_name like upper(‘&object_name’))
and (owner like upper(‘&object_owner’) or
referenced_owner like upper(‘&object_owner’))
and referenced_owner not like ‘SYS%’
and owner != referenced_owner
order by 1,2
.

@c:tempx2

spool off

set termout on
prompt
prompt Done. Output in c:tempdb_impact.lst
prompt

 195 pts.