Надо провести исследования для каких таблиц нужны триггеры, для обновления курсоров. А для каких это будет только тормозить работу. В тестовом варианте есть таблица pg_log_table_update в ней три поля tabname имя таблицы createdcursor количество созданных курсоров renewcursor количество обновлений курсоров Соответственно, если для таблицы курсор создался 100 раз, а обновился 1, то можно для такой таблицы не делать триггер. Выходом должен быть набор масок. (точные имена таблиц, маски таблиц (для которых надо делать), точные имена таблиц, маски таблиц (исключения)) Что нужно сделать для этого Взять SELTA от сюда /var/ftp/tmp/stas/seltatriggerlog/ Сделать новую базу. (надо не одну конфигурацию) Сымитировать работу бухгалтера. Покопаться в справочниках, документах(создавать листать). Проводить, отменять проводки. Можно отслеживать этапы, например сначала загрузить базу, отметить состояние, побегать по журналам/справочникам, отметить состояние, и.т.д. Может быть какие-то еще выводы из этих данных сделать.
рассматриваем 3 стандартные конфигурации: БУХ, ТиС, ЗиК порядок рассмотрения каждой: 1.загрузка данных 2.возможно выгрузка данных 3.справочники : пролистывание, добавление, удаление, поиск 4.журналы : вероятно то же самое 5.формирование отчетов 6.проводка документов 7.возможно перепроведение всех документов
расммотрим ЗиК: данные при загрузке: tabname | createdcursor | renewcursor ----------+---------------+------------- _1sjourn | 7 | 0 sc474 | 1 | 0 sc193 | 1 | 0 sc4161 | 1 | 0 sc679 | 1 | 0 sc16 | 1 | 0 sc162 | 1 | 0 sc177 | 1 | 0 _1sconst | 32 | 0
прогнал по ЗиК-у. ниже отчет.
Created attachment 1119 [details] отчет по ЗиК-у
Нужны триггеры для: sc% справочники sj% данные журнала расчетов _1sjourn журнал Точно не нужно _1scrdoc зависимости документов _1sconst Содержит значения констант, периодических реквизитов справочников и бухгалтерских счетов не использовались dh% Содержит данные реквизитов шапки и общих реквизитов без признака "Отбор" документа конкретного вида. Создается при наличии у документа соответствующих реквизитов. dt% Содержит данные реквизитов табличной части документа конкретного вида. Создается при наличии у документа соответствующих реквизитов. ra% Содержит движения регистра конкретного вида. rg% Содержит итоги регистра конкретного вида (остатки для регистров остатков, обороты для оборотных регистров). _1SSYSTEM Системная таблица. Общие параметры информационной базы (точка актуальности, рассчитанный период бухгалтерских итогов, периодичность оперативных итогов). _1SUSERS Системная таблица. Отслеживание числа соединений с базой данных, счетчик изменений данных пользователями. _1SDNLOCK Содержит временный список номеров документов, которые в данный момент вводятся, для автоматической нумерации документов с учетом вводимых. _1SUIDCTL Используется для дополнительного контроля уникальности внутренней идентификации объектов (документов, справочников, бухгалтерских счетов). _1sconnect подключения _1sstream последовательности документов Что касается DH% DT% RA% RG% то тут я насколько понимаю триггеры не нужны, а с _1s% тут сложнее. хотя мне кажется, что ничего не надо. _1SSYSTEM -- надо попробывать как-то ее использовать. Думаю для 1с можно делать по этим маскам, для другого не делать: sc% sj% _1sjourn
правила именования таблиц одинаково в разных стандартных конфигурациях 1с77 загрузил ТИС. при загрузке: tabname | createdcursor | renewcursor ----------+---------------+------------- ra639 | 2 | 0 ra464 | 2 | 0 ra4667 | 2 | 0 ra4674 | 2 | 0 sc2543 | 1 | 0 sc2875 | 1 | 0 sc7664 | 1 | 0 ra635 | 2 | 0 ra3549 | 2 | 0 ra4343 | 2 | 0 ra405 | 2 | 0 ra328 | 2 | 0 ra351 | 2 | 0 ra2964 | 2 | 0 ra4335 | 2 | 0 ra4314 | 2 | 0 ra2351 | 2 | 0 ra438 | 2 | 0 _1sjourn | 41 | 0 ra4480 | 2 | 0
(In reply to comment #6) > загрузил ТИС. немного погонял 1с , не вдаваясь в точный анализ, получил среднюю статистику: tabname | createdcursor | renewcursor ----------+---------------+------------- sc172 | 14 | 29 sc35 | 79 | 0 rgtemp1 | 6 | 0 _1scrdoc | 35 | 0 rg4667 | 1 | 0 sc558 | 4 | 0 rg4674 | 3 | 0 ra4674 | 412 | 0 ra405 | 394 | 0 ra4335 | 404 | 0 rg405 | 2 | 0 rg4335 | 3 | 0 rg4480 | 3 | 0 sc55 | 6 | 0 sc562 | 7 | 0 sc4014 | 5207 | 0 rg328 | 2 | 0 sc214 | 3 | 0 sc503 | 4 | 0 rg639 | 1 | 0 sc1710 | 1 | 0 rg2964 | 1 | 0 rg4314 | 1 | 0 rg635 | 86 | 0 sc1809 | 2637 | 0 ra328 | 394 | 0 ra4480 | 394 | 0 sc14 | 2638 | 0 _1sjourn | 8771 | 541 rg2351 | 1 | 0 sc556 | 1 | 0 sc84 | 23 | 112 sc890 | 16 | 0 sc319 | 50 | 0 sc796 | 4 | 8 sc163 | 15 | 49 sc4264 | 1 | 21 sc546 | 10 | 28 ra639 | 393 | 0 ra438 | 393 | 0 ra635 | 2944 | 0 ra4667 | 393 | 0 ra3549 | 399 | 0 ra4343 | 427 | 0 ra351 | 393 | 0 ra2964 | 395 | 0 ra4314 | 395 | 0 ra2351 | 393 | 0 sc204 | 11 | 0 rg464 | 2 | 0 ra464 | 394 | 0 rgtemp0 | 13 | 0 что делал: проводил документы, открывал, листал справочники и журналы,сформировывал различные отчеты
точно так же прогнал БУХгалтерию. получил: tabname | createdcursor | renewcursor -----------+---------------+------------- _1stoper | 2 | 7 sc11147 | 2 | 11 _1soper | 2 | 476 _1scorent | 2 | 153 _1sentry | 205 | 1304 sc40428 | 2 | 4 _1sjourn | 7 | 860 _1saccs | 3 | 514
итак, нужны триггеры для: sc% , cj% , _1sjourn , _1stoper , _1soper , _1scorent , _1sentry и _1saccs комитим изменения