05.08.2009, 09:42 | #21 |
Участник
|
спасибо, про doInsert, doUpdate напомнили ....получается, в аксапте, если я не использую аксаптовский лог я не смогу эти события отловить(
|
|
08.08.2009, 02:10 | #22 |
Участник
|
Получается, что триггеры лучше тем, что:
1) если не используется стандартный лог, то невозможно отловить вставки и удаления с помощью doinsert/doupdate 2) если используется update_recordset/insert_recordset, то переопеределение insert/update замедлит операции вставки/ обновления |
|
10.08.2009, 12:01 | #23 |
Участник
|
|
|
10.08.2009, 17:54 | #24 |
MCITP
|
Работает... Но тут вроде как их по смыслу никто скипать не собирается..
__________________
Zhirenkov Vitaly |
|
12.08.2009, 02:30 | #25 |
Участник
|
так точно, не собирается.
|
|
12.02.2014, 04:28 | #26 |
NavAx
|
Заметно тормозит систему.
Ситуация у нас такая, что идут постоянные бодания на тему:"кто накосячил". Несколько систем работает в связке, причем регулярно дорабатываются. Регулярно, посреди транзакции падает одна из систем или связка между ними. Пользователи с админскими правами тоже активно что-то правят. Регулярно обнаруживаются косяки и начинается поиск виноватых. Чтобы прикрыть задницу, ведется логгирование в файлах всего что входит/выходит через BC и основных таблиц в системном логе. Т.к. в лог пишут все и сразу, он временами начинает задумываться над своей тяжелой жизнью. При этом гражданин должен ждать у конторки, пока чиновник выпишет ему документ лишние 10 секунд. Гражданин расстраивается. Чиновник расстраивается от того, что гражданин расстроился. Другой гражданин расстроился из-за того, что очередь образовалась. Все unhappy. Надо что-то делать. AX 4.0.2501.116
__________________
Isn't it nice when things just work? |
|
12.02.2014, 11:12 | #27 |
Участник
|
На уровне БД конкретного пользователя не отловить, все подключаются под учеткой AOS-а. А вот если какая-то программа лезет напрямую в базу, то это возможно отловить только триггерами.
|
|
12.02.2014, 11:34 | #28 |
Участник
|
Цитата:
А сами они непосредственно ведь не пишут в транзакционные таблички. Так что их можно и не логировать. Кстати, при желании, можно отлавливать все нажатия на кнопки в системе. sysSetupformRun в этом поможет. Тормозов особых не добавит. |
|
12.02.2014, 12:53 | #29 |
Участник
|
Цитата:
|
|
13.02.2014, 01:26 | #30 |
NavAx
|
Цитата:
Клиент нервный, но очень важный. Поэтому чтобы в чем-то убедить, доказательства должны быть очень надежными.
__________________
Isn't it nice when things just work? |
|
13.02.2014, 01:28 | #31 |
NavAx
|
createdby, modifiedby должно хватить
__________________
Isn't it nice when things just work? |
|
13.02.2014, 17:33 | #32 |
Участник
|
По-моему, это - почти чисто админская (в смысле DBA) проблема, а не аксаптовая. Да, есть одна таблица, в которую куча народу накидывает кучу записей, да, она может разрастаться до десятков процентов от размера всей базы, да, иногда вставка записи в нее может задумываться на несколько секунд, тормозя обработку данных, удлинняя транзакции, приводя к дополнительным блокировкам и т.п. Ну и что, из-за этого сама идея перестает быть хорошей? Один из вариантов решения - партицирование таблицы по какому-то левому полю, значение которого хорошо распределено между сессиями. Можно добавить поле по аналогии с LedgerBalancesDimTrans.LedgerBalancesVariant, которое заполнять каким-нить остатком от деления кода сессии на константу, и вот по этому полю партицировать таблицу. А еще регулярно избирательно чистить ее, чтобы она не разрасталась до непомерных размеров, - для этого может потребоваться дополнительное партицирование по LogTableId.
|
|
|
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (2). |
13.02.2014, 17:42 | #33 |
Участник
|
А еще лучше хранить в SysDatabaseLog стек вызовов и прочие полезные плюшки.
позволяет понять - пользователь накосячил или функционал кривой. |
|