Bug 3720

Summary: Исследование для каких таблиц нужны триггеры для курсоров
Product: SELTA@Etersoft Reporter: Станислав Коробейников <stas>
Component: ODBC-драйверAssignee: Калюхович Юрий <goga>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: goga, lav, shan
Version: 1.0.6   
Target Milestone: версия 1.0.4   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3516    
Attachments: отчет по ЗиК-у

Description Станислав Коробейников 2009-03-23 17:45:14 MSK
Надо провести исследования для каких таблиц нужны триггеры, для обновления курсоров. А для каких это будет только тормозить работу. 

В тестовом варианте есть таблица pg_log_table_update в ней три поля
  tabname имя таблицы
  createdcursor количество созданных курсоров
  renewcursor количество обновлений курсоров
Соответственно, если для таблицы курсор создался 100 раз, а обновился 1, то можно для такой таблицы не делать триггер.

Выходом должен быть набор масок. (точные имена таблиц, маски таблиц (для которых надо делать), точные имена таблиц, маски таблиц (исключения))

Что нужно сделать для этого 
Взять SELTA от сюда /var/ftp/tmp/stas/seltatriggerlog/
Сделать новую базу. (надо не одну конфигурацию)
Сымитировать работу бухгалтера. Покопаться в справочниках, документах(создавать листать). Проводить, отменять проводки. 
 
Можно отслеживать этапы, например сначала загрузить базу, отметить состояние, побегать по журналам/справочникам, отметить состояние, и.т.д.
Может быть какие-то еще выводы из этих данных сделать.
Comment 1 Калюхович Юрий 2009-03-23 18:21:56 MSK
рассматриваем 3 стандартные конфигурации: БУХ, ТиС, ЗиК

порядок рассмотрения каждой:
1.загрузка данных
2.возможно выгрузка данных
3.справочники : пролистывание, добавление, удаление, поиск
4.журналы : вероятно то же самое
5.формирование отчетов
6.проводка документов
7.возможно перепроведение всех документов
Comment 2 Калюхович Юрий 2009-03-23 18:23:01 MSK
расммотрим ЗиК: данные при загрузке:
 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
Comment 3 Калюхович Юрий 2009-03-23 19:22:06 MSK
прогнал по ЗиК-у. ниже отчет.
Comment 4 Калюхович Юрий 2009-03-23 19:22:46 MSK
Created attachment 1119 [details]
отчет по ЗиК-у
Comment 5 Станислав Коробейников 2009-03-24 11:26:25 MSK
Нужны триггеры для:
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
Comment 6 Калюхович Юрий 2009-03-25 10:49:23 MSK
правила именования таблиц одинаково в разных стандартных конфигурациях 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
Comment 7 Калюхович Юрий 2009-03-25 11:34:50 MSK
(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

что делал: проводил документы, открывал, листал справочники и журналы,сформировывал различные отчеты
Comment 8 Калюхович Юрий 2009-03-25 12:00:08 MSK
точно так же прогнал БУХгалтерию. получил:
  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
Comment 9 Калюхович Юрий 2009-03-25 12:52:29 MSK
итак, нужны триггеры для:

sc% , cj% , _1sjourn , _1stoper , _1soper ,
_1scorent , _1sentry и _1saccs

комитим изменения