У нас есть система, разработанная нашими администраторами баз данных, которая работает как триггер при обновлении / удалении.Существует вторичная таблица, которая почти отражает ревизуемую таблицу (кроме некоторых других деталей, таких как время транзакции, имя входа, использованное для обновления, сервер и т. Д.).Каждый раз, когда кто-то вносит изменения, он регистрируется в версии аудита таблицы через триггер.Отчасти раздражает необходимость поддерживать триггер аудита в актуальном состоянии в любое время, когда меняется схема, но c'est la vie.
Хорошая вещь в этом заключается в том, что приложениям не нужно заниматься этим аудитом вообще ... таким образом, он сохраняет подсчет концепции для кода приложения низким (er).
Он находится в производстве и работает с таблицами, где число транзакций исчисляется десятками тысяч в день.Ваш пробег может, конечно, варьироваться в зависимости от ряда факторов, таких как размер вашего сервера и характер ваших данных, но это работает для нас: -)