Показать сообщение отдельно
Старый 13.02.2014, 17:33   #17  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от macklakov Посмотреть сообщение
Чтобы прикрыть задницу, ведется логгирование в файлах всего что входит/выходит через BC и основных таблиц в системном логе. Т.к. в лог пишут все и сразу, он временами начинает задумываться над своей тяжелой жизнью.
По-моему, это - почти чисто админская (в смысле DBA) проблема, а не аксаптовая. Да, есть одна таблица, в которую куча народу накидывает кучу записей, да, она может разрастаться до десятков процентов от размера всей базы, да, иногда вставка записи в нее может задумываться на несколько секунд, тормозя обработку данных, удлинняя транзакции, приводя к дополнительным блокировкам и т.п. Ну и что, из-за этого сама идея перестает быть хорошей? Один из вариантов решения - партицирование таблицы по какому-то левому полю, значение которого хорошо распределено между сессиями. Можно добавить поле по аналогии с LedgerBalancesDimTrans.LedgerBalancesVariant, которое заполнять каким-нить остатком от деления кода сессии на константу, и вот по этому полю партицировать таблицу. А еще регулярно избирательно чистить ее, чтобы она не разрасталась до непомерных размеров, - для этого может потребоваться дополнительное партицирование по LogTableId.
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (2).