Вывести список локальных объектов
На страницу Пред. 1, 2
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Пт Апр 05, 2013 16:03   |
|
Полезность: Нет оценки
|
Alexsey пишет: | Кому как удобнее. Не на всех операциях включено журналирование. Тем более после сбора статистики придется журналирование на лишних операциях отключать. |
Ну так включите на всех - или вручную или, если заморочиться, операцией.
Зато не надо переписывать операции... |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пт Апр 05, 2013 16:15   |
|
Полезность: Нет оценки
|
Andry пишет: |
Ну так включите на всех |
Это далеко не есть гуд, для производительности сервака  |
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Пт Апр 05, 2013 16:19   |
|
Полезность: Нет оценки
|
yaffil пишет: | Andry пишет: |
Ну так включите на всех |
Это далеко не есть гуд, для производительности сервака  |
логично, заведомо известные часто вызываемые локальные операции можно не журналировать.
А как иначе можно проще всего решить заявленную задачу - проанализировать статистику выполнения ЛО чтобы найти какие не используются? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пн Апр 08, 2013 07:30   |
|
Полезность: Нет оценки
|
у нас целая подсистема уже за локальными объектами следит. каждый объект на виду.
Все локальные объекты:
Код: |
procedure LoadAllLocal(p_app [NCB_LOCAL_APP])
is
begin
for
(
select
c(c.id:ident, decode(c.obj_type, 'METHODS', 'METH', 'CRITERIA', 'CRIT', 'CLASSES', 'TYPE') :obj_type, c.class_id:class_id
, c.short_name:short_name, c.name:name)
in
(
select c
(
c.id:id
, 'CLASSES':obj_type
, c.id:class_id
, c.id:short_name
, c.name:name
)
in classes%rowtype--, (class_tables%rowtype:ct)
--where c.id=ct.class_id
union
select m
(
m.id:id
, 'METHODS':obj_type
, m.class_id:class_id
, m.short_name:short_name
, m.name:name
)
in methods%rowtype
where m.flags not in ('Z', 'A')
union
select m
(
m.id:id
, 'METHODS':obj_type
, m.class_id:class_id
, m.short_name:short_name
, m.name:name
)
in methods%rowtype
where m.flags='Z'
and not exists (select cr(1) in criteria%rowtype where cr.id = m.id)
union
select c
(
c.id:id
, 'CRITERIA':obj_type
, c.class_id:class_id
, c.short_name:short_name
, c.name:name
) in criteria%rowtype
)
where not exists (
select o(1) in objects_options%rowtype where o.obj_type = c.obj_type
and o.class_id = c.class_id and (o.short_name = c.short_name or c.short_name like o.short_name)
)
)
loop
p_app.[OBJS].[NEW_AUTO](
&L.AddObj(c.obj_type, c.class_id, c.short_name, GetNote) --Объект
);
end loop;
end;
|
|
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пн Апр 08, 2013 07:34   |
|
Полезность: 1
|
По поводу анализа не используемых. Немного корявое решение, но может можно пользоваться. В Платформе развития есть функционал для сбора статистики:
Цитата: | Краткое описание типов и операций.
Типы, объединяемые общим термином "Статистика", предназначены для сбора
и анализа статистики о запусках операций, заданий, отчетов, выборок из представлений (которые терминологически обозначаются понятием "действие").
Основной тип - RUN_SESSIONS, который содержит основной функционал
(операции и представления). Экземпляры типа - это отслеживаемые
сессии пользователей, для которых собирается статистика, создаются
и удаляются автоматически. |
Если ее включить, то неиспользуемые операции можно получить вот так:
Код: | procedure LoadNoUseLocal(p_app [NCB_LOCAL_APP])
is
begin
for
(
select
c(c.id:ident, decode(c.obj_type, 'METHODS', 'METH', 'CRITERIA', 'CRIT', 'CLASSES', 'TYPE') :obj_type, c.class_id:class_id
, c.short_name:short_name, c.name:name)
in
(
select c
(
c.id:id
, 'CLASSES':obj_type
, c.id:class_id
, c.id:short_name
, c.name:name
)
in classes%rowtype, (class_tables%rowtype:ct)
where c.id=ct.class_id
union
select m
(
m.id:id
, 'METHODS':obj_type
, m.class_id:class_id
, m.short_name:short_name
, m.name:name
)
in methods%rowtype
where m.flags not in ('Z', 'A')
union
select m
(
m.id:id
, 'METHODS':obj_type
, m.class_id:class_id
, m.short_name:short_name
, m.name:name
)
in methods%rowtype
where m.flags='Z'
and not exists (select cr(1) in criteria%rowtype where cr.id = m.id)
union
select c
(
c.id:id
, 'CRITERIA':obj_type
, c.class_id:class_id
, c.short_name:short_name
, c.name:name
) in criteria%rowtype
)
where not exists (
select o(1) in objects_options%rowtype where o.obj_type = c.obj_type
and o.class_id = c.class_id and (o.short_name = c.short_name or c.short_name like o.short_name)
)
and c.id not in
(select x(x.[OBJ_ID] : group_id)
in ::[RUN_GROUPS] all)
)
loop
p_app.[OBJS].[NEW_AUTO](
&L.AddObj(c.obj_type, c.class_id, c.short_name, GetNote2) --Объект
);
end loop;
end; |
Господа! Я понимаю что это очень коряво и много чего не учитывается. Но вариант такой предложить считаю уместным... |
|
 |
Ezhik Участник со стажем
Вступление в Клуб: 17.04.2009
|
Пн Апр 08, 2013 09:12   |
|
Полезность: Нет оценки
|
prog пишет: | По поводу анализа не используемых. Немного корявое решение, но может можно пользоваться. В Платформе развития есть функционал для сбора статистики:
Цитата: | Краткое описание типов и операций.
Типы, объединяемые общим термином "Статистика", предназначены для сбора
и анализа статистики о запусках операций, заданий, отчетов, выборок из представлений (которые терминологически обозначаются понятием "действие").
Основной тип - RUN_SESSIONS, который содержит основной функционал
(операции и представления). Экземпляры типа - это отслеживаемые
сессии пользователей, для которых собирается статистика, создаются
и удаляются автоматически. |
Если ее включить | Как вариант, но крайне нежелательно запускать на боевой схеме, т. к. очень высок риск того, что просядет производительность. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пн Апр 08, 2013 09:25   |
|
Полезность: Нет оценки
|
еще RUN_SESSIONS ( ипрочие таблички этой подсистемы) пухнут быстро. Однако ЦФТ упрямо считает объекты, и банку надо их минимизировать... |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|