Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
Приветствую.

Скажите пожалуйста, есть ли какие-нибудь простые способы найти пользовательские объекты, на которые нет ссылок из других объектов (может быть утилита?), т.е., например, если это пакет, то получается, что нужно перешерстить все из этого:
dba_source:
function
procedure
package
package body
type
type body
trigger
dba_views:
view
+ dba_synonyms (synonyms)
+ dba_constraints (check constraints)
+ dba_ind_expressions (function-based indexes)
+ dba_jobs (jobs)
(может быть еще что-то упустил)

Объект считается неиспользуемым, если на него нет ссылок из других объектов, в т.ч. в других схемах (динамеческий sql и java source не в счет).
Объектов много (желательно найти вообще все неиспользуемое).

Проще всего конечно подропать нужные объекты и смотреть, кто из них что-нибудь задевает, но это имхо не самый лучший вариант...

Может у кого-нибудь есть готовое решение (или запрос)? подскажите, пожалуйста

Спасибо.
8 июн 10, 13:21    [8907843]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
проходил
Guest
dba_dependencies
8 июн 10, 13:22    [8907860]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
в oracle 9.2
эта вьюха врет, либо я делаю что-то не так
объект есть (таблица), на него явно есть ссылки из текста процедур пакета в другой схеме, в dba_dependencies такого объекта вообще нет
8 июн 10, 13:58    [8908274]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Torque
в oracle 9.2
эта вьюха врет, либо я делаю что-то не так
объект есть (таблица), на него явно есть ссылки из текста процедур пакета в другой схеме, в dba_dependencies такого объекта вообще нет


Демонстрируй протокол попыток. И желательно в SQL*Plus, чтобы исключить глюки всяких GUI
8 июн 10, 14:06    [8908362]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
SQL> create table mytable(f number)
  2  /

Table created.

SQL> create or replace package pkg_Test as
  2    procedure SomeProcedure;
  3  end;
  4  /

Package created.

SQL> create or replace package body pkg_Test as
  2    procedure SomeProcedure IS
  3    begin
  4      insert into mytable values(1);
  5    end;
  6  end;
  7  /

Package body created.

SQL> begin
  2    pkg_Test.SomeProcedure;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> select * from mytable
  2  /

         F
----------
         1

SQL> select * from dba_objects where object_name = 'MYTABLE'
  2  /

OWNER
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- ------------------
CREATED    LAST_DDL_T TIMESTAMP           STATUS  T G S
---------- ---------- ------------------- ------- - - -
ADMIN
MYTABLE
                                   123087         123087 TABLE
08.06.2010 08.06.2010 2010-06-08:14:16:17 VALID   N N N


SQL> select * from dba_dependencies where name = 'MYTABLE'
  2  /

no rows selected

не то что то селекчу?
8 июн 10, 14:25    [8908574]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Database Reference


ALL_DEPENDENCIES
--------------------

NAME Name of the object

REFERENCED_NAME Type of parent object
8 июн 10, 14:28    [8908602]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Elic
Member

Откуда:
Сообщений: 29980
Torque
не то что то селекчу?
Попутал "использует" и "используется".
8 июн 10, 14:28    [8908603]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
ALocky
Member

Откуда: Понаехал из Подмосковья
Сообщений: 747
referenced_name
8 июн 10, 14:29    [8908607]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
SQL> select * from dba_dependencies where referenced_name = 'MYTABLE'
  2  /

no rows selected

тоже самое...
8 июн 10, 14:32    [8908648]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
мне-то от обратного надо поиск вести,
т.е. не от пакета а от таблицы - используется ли она какими-нибудь пакетами или нет...
8 июн 10, 14:35    [8908692]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
ALocky
Member

Откуда: Понаехал из Подмосковья
Сообщений: 747
В 10 работает...
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
 
SQL> create table mytable(f number);
 
Table created
 
SQL> 
SQL> create or replace package pkg_Test as
  2  procedure SomeProcedure;
  3  end;
  4  /
 
Package created
 
SQL> 
SQL> create or replace package body pkg_Test as
  2  procedure SomeProcedure IS
  3  begin
  4  insert into mytable values(1);
  5  end;
  6  end;
  7  /
 
Package body created
 
SQL> 
SQL> begin
  2    pkg_Test.SomeProcedure;
  3  end;
  4  /
 
PL/SQL procedure successfully completed
 
SQL> select name from dba_dependencies where referenced_name = 'MYTABLE';
 
NAME
------------------------------
PKG_TEST
 
SQL> 
8 июн 10, 14:39    [8908731]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production


может в 9-ке надо перед этим статистику посчитать или еще что-нибудь?
8 июн 10, 14:46    [8908821]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
flu4u
Member

Откуда: Москва <-120км-> Ярославль
Сообщений: 120
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE	9.2.0.7.0	Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production

Работает.
8 июн 10, 14:56    [8908922]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
Torque
Member

Откуда:
Сообщений: 141
не могло же быть так, чтоб в 9.2.0.7.0 работало, а 9.2.0.6.0 - нет
может что-то не там настроено или еще что-то?
8 июн 10, 15:07    [8909038]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
flu4u
Member

Откуда: Москва <-120км-> Ярославль
Сообщений: 120
Впрочем, есть и
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
PL/SQL Release 9.2.0.6.0 - Production
CORE	9.2.0.6.0	Production
TNS for 32-bit Windows: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production

Тоже работает без проблем.
8 июн 10, 15:08    [8909050]     Ответить | Цитировать Сообщить модератору
 Re: Поиск неиспользуемых объектов БД  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
к
Torque
не могло же быть так, чтоб в 9.2.0.7.0 работало, а 9.2.0.6.0 - нет
может что-то не там настроено или еще что-то?

ну а что у вас тут?
select A.* from SYS.DBA_DEPENDENCIES A
   where A.REFERENCED_OWNER = 'SYS'
     and A.REFERENCED_TYPE  = 'TABLE'
     and A.REFERENCED_NAME  = 'DUAL';
8 июн 10, 15:10    [8909072]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить