Полезные запросы к системным таблицам

Описан поиск неактуальных (неиспользуемых) объектов БД через запросы к системным таблицам.Описан поиск неактуальных (неиспользуемых) объектов БД через запросы к системным таблицам.

На этапе активной модификации метаданных при создании сложной БД могут возникать неактуальные объекты: генераторы, домены, исключения, UDF и другие в зависимости от особенностей проектируемой БД.
Для "отлавливания" таких объектов можно использовать простые запросы к системным таблицам:

/* Неиспользумые домены */
select RF.Rdb$Field_Name
  from Rdb$Fields RF
 where RF.Rdb$Field_Name not like 'RDB$%'    /* Используются Interbase */
   and not exists (select 1
                     from Rdb$Relation_Fields
                    where RDB$FIELD_SOURCE = RF.Rdb$Field_Name);

/* Неиспользуемые исключения */
select E.Rdb$Exception_Name
  from Rdb$Exceptions E
 where E.Rdb$Exception_Name not like 'RDB$%' /* Используются Interbase */
   and not exists (select 1
                     from Rdb$Dependencies D
                    where D.Rdb$Depended_On_Name = E.Rdb$Exception_Name)


/* Неиспользуемые UDF: */
select F.Rdb$Function_Name
  from Rdb$Functions F
 where not exists (select 1
                     from Rdb$Dependencies D
                    where D.Rdb$Depended_On_Name = F.Rdb$Function_Name)

/* Неиспользуемые генераторы: */
select G.Rdb$Generator_Name
  from Rdb$Generators G
 where G.Rdb$Generator_Name not like 'RDB$%' /* Используются Interbase */
   and G.Rdb$Generator_Name not like 'SQL%'  /* Используются Interbase */
   and not exists (select 1
                     from Rdb$Dependencies D
                    where D.Rdb$Depended_On_Name = G.Rdb$Generator_Name)

Кстати, из того что объекты теперь удалены не следует что аннулированы их привилегии.



Опубликовал admin
2 Май, Суббота 2009г.



Программирование для чайников.