CftClub.ru
Клуб специалистов ЦФТ-Банк

Вывести список локальных объектов
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 03:47   Вывести список локальных объектов Ответить с цитатой
Полезность: Нет оценки
Добрый день.
Подскажите. Каким образом вывести запросом список локальных объектов банка или может кто-нибудь подскажет готовое представление в котором это реализовано? Речь не идет о хаке Smile Просто есть необходимость контроля количества локальных объектов системы и желание уменьшить их количество путем анализа неиспользуемых.
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеПт Апр 05, 2013 08:03    Ответить с цитатой
Полезность: Нет оценки
А как ты проанализаруешь их неиспользуемость?
На всех локальных операциях надо ставить признак журналирования, и писать представление которое показывает - какие не запускались за период...
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 08:08    Ответить с цитатой
Полезность: Нет оценки
Ну да. У меня только такой способ.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Апр 05, 2013 08:43    Ответить с цитатой
Полезность: Нет оценки
Можно воспользоваться запросом:

Код:

pragma pl_sql(true);
type main is
  SELECT x(
....
) IN methods%rowtype


В условие вставить like по префиксу вашего банка. Потом крыжить список чего надо, а чего нет.
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 09:12    Ответить с цитатой
Полезность: Нет оценки
Можно, но попадут не все. Не на всех есть наш префикс, есть например операции по интеграции с банк-клиентом, там вообще префиксов нет, есть еще и хуки.
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Апр 05, 2013 09:17    Ответить с цитатой
Полезность: Нет оценки
Без префиксов, вас ЦФТ будет долго и упорно драть, присылая эти объекты сравненные с эталонной базой. У нас из за этого в прошлом банке год на сопровождение не брали. А хуки локальные они все в одном месте справочника, не так уж и много их локальных.
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 09:35    Ответить с цитатой
Полезность: Нет оценки
Ну на поддержку нас уже взяли Smile, а держать еще в уме что есть хуки и их тоже как-то нужно обработать как-то не системно.
Поэтому и хотелось бы узнать, кроме использования префиксов в наименовании операции, как определить дистрибутив это или локаль.
Ghost
Профи


Вступление в Клуб: 24.11.2007
СообщениеПт Апр 05, 2013 09:54    Ответить с цитатой
Полезность: Нет оценки
montes пишет:
Ну на поддержку нас уже взяли Smile, а держать еще в уме что есть хуки и их тоже как-то нужно обработать как-то не системно.
Поэтому и хотелось бы узнать, кроме использования префиксов в наименовании операции, как определить дистрибутив это или локаль.

Попросите у ЦФТ *.pck с эталонной схемы, все что не отметится и будет ваш локал. Или как вариант саму эталонную схему и выполните сравнение.
Ezhik
Участник со стажем


Вступление в Клуб: 17.04.2009
СообщениеПт Апр 05, 2013 10:06    Ответить с цитатой
Полезность: Нет оценки
Либо сравнение с эталоном, либо с таблицей OBJECTS_OPTIONS
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 10:18    Ответить с цитатой
Полезность: Нет оценки
Ghost пишет:
Попросите у ЦФТ *.pck с эталонной схемы, все что не отметится и будет ваш локал. Или как вариант саму эталонную схему и выполните сравнение.

Задача не найти эти локальные объекты (их можно посмотреть и в администраторе дистрибутива), а использовать их в запросе для определения как часто они используются.
montes
Участник


Вступление в Клуб: 05.04.2013
СообщениеПт Апр 05, 2013 10:35    Ответить с цитатой
Полезность: Нет оценки
Ezhik пишет:
Либо сравнение с эталоном, либо с таблицей OBJECTS_OPTIONS
С таблицей - это вариант. Подскажите, а с представлениями как я могу подобное сравнение сделать
Ezhik
Участник со стажем


Вступление в Клуб: 17.04.2009
СообщениеПт Апр 05, 2013 11:31    Ответить с цитатой
Полезность: Нет оценки
montes пишет:
Ezhik пишет:
Либо сравнение с эталоном, либо с таблицей OBJECTS_OPTIONS
С таблицей - это вариант. Подскажите, а с представлениями как я могу подобное сравнение сделать
Там все объекты, включая представления. Т. е. брать представление и смотреть, есть ли там запись с таким же SHORT_NAME
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Апр 05, 2013 11:35    Ответить с цитатой
Полезность: Нет оценки
Я бы создал справочник, в который заносится имя объекта и счетчик на количество инициализаций
_________________
всегда есть как минимум 2 выхода
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеПт Апр 05, 2013 15:16    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
Я бы создал справочник, в который заносится имя объекта и счетчик на количество инициализаций

Зачем, если можно включить журналирование запуска?
Код:

pragma include([SYS_DIARYS]::[CRIT_DIARY]);

pragma macro (date1, 'to_date(sys_context(USER_CONTEXT, ''SUM_USAGE_DATE_1''), ''dd/mm/yyyy'')', substitute);
pragma macro (date2, 'to_date(sys_context(USER_CONTEXT, ''SUM_USAGE_DATE_2''), ''dd/mm/yyyy'')', substitute);

type main is
   select m(
             m.CLASS_ID,
             m.ID                                                        : ID,
            nvl(d.user_id, 'Nobody')                                       : c_user_id,
             m.class_id||'.'||m.short_name                                     : c_sname,
               m.name                                                      : c_name,
               decode(nvl(d.user_id,'Nobody'),'Nobody',0, nvl(count(d.sname),0))         : c_count,
               decode(m.user_driven, 1, 'Yes', 0, 'No')                           : c_user_driven
            )
         in METHODS%rowtype, (DIARY_EXEC%rowtype all :d)
               where
                  m.id = d.method_id(true)
               
--   Критерий локальных операций  - префикс
                  and upper(substr(m.short_name,1,3)) = 'SUM'
               
--   Только те, которые журналируются
                  and (m.PROPERTIES like '%PARAMS Y%' or (m.PROPERTIES like '%COMPILER %' and m.PROPERTIES not like '%COMPILER 0%'))
                  and nvl(trunc(d.time(true)), trunc(&date1)+1) >= trunc(&date1)
                  and nvl(trunc(d.time(true)), trunc(&date2)-1) <= trunc(&date2)
                   group by 
                      m.CLASS_ID,
                      m.ID,
                      nvl(d.user_id,'Nobody'),
                      m.class_id||'.'||m.short_name,
                      m.name,
                      d.user_id,
                      m.USER_DRIVEN
                   order by 2
   ;
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Апр 05, 2013 15:35    Ответить с цитатой
Полезность: Нет оценки
Кому как удобнее. Не на всех операциях включено журналирование. Тем более после сбора статистики придется журналирование на лишних операциях отключать.
_________________
всегда есть как минимум 2 выхода
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru