![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отслеживание изменений в базе [D6, Firebird 2.0]
Sirus © (2007-11-03 08:31:00)Привет Мастера!
Есть вопрос: Как можно реализовать отслеживание изменений в базе данных? Отслеживаться должны изменение, удаление и вставка записи в базу данных. При этом нужно еще хранить код пользователя проделавшего эти изменения.
Есть какие-нить соображения или наработки, поделитесь опытом.
Anatoly Podgoretsky (2007-11-06 19:25:00) [21]> Desdechado (06.11.2007 17:59:14) [14]
Не знаю про Firebird, но на MSSQL нет проблем, и не тольно в другой БД, но и на другой сервер, на другой машине.
Anatoly Podgoretsky (2007-11-06 19:23:00) [22]> stud (06.11.2007 15:52:10) [10]
Боятся :-)
Anatoly Podgoretsky (2007-11-06 19:22:00) [23]> PEAKTOP (06.11.2007 14:51:07) [7]
Для информации, у меня запись на диск происходит весьма редко, раз в две минуты, а сервер постоянно пашет.
Anatoly Podgoretsky (2007-11-06 19:21:00) [24]> Sergey13 (06.11.2007 14:38:06) [6]
> А в чем по твоему заключается работа пользователей в БД? По моему как раз в воде, редактировании и удалении записей.
В типовой, рядовой базе на это уходит менее одного процента, основные затраты идут на запросы, в которых ничего подобного не делается, есть конечно базы, к которым почти не делается запросов, а идут в основном добавления, но такие базы не типовые.
Anatoly Podgoretsky (2007-11-06 19:19:00) [25]> stud (06.11.2007 14:27:05) [5]
Объем равен = количество изменений одной записи + дополнительная информация по записи.
Десять раз отредактируешь одну запись получишь 10 копий со служебной информацией, а без служебной информации лог мало чего стоит.
Desdechado (2007-11-06 17:59:00) [26]> можно хранить это г**но вообще в отдельной БД
В EXTERNAL TABLE - да, в отдельной БД - на уровне триггеров никак.
PEAKTOP (2007-11-06 16:14:00) [27]> Но при этом лог следует выгружать с заметной периодичностью во внешний файл и закатывать на болванки, очищая место в БД для нормальных данных.
Правильной дорогой идете, товарищь !
А еще можно хранить это г**но вообще в отдельной БД. Благо, ЖарПтица не накладывает ограничения на подключения.
Sergey13 (2007-11-06 16:04:00) [28]> [10] stud © (06.11.07 15:52)
> редактирование, удаление это уже побочный эффект связанный
> с некачественной "основной" работой.
Странно ты рассуждаешь. Если 1 юзер ввел новую запись и заполнил в ней 3 (из допустим 20) поля. Юзер 2 ввел свои данные - заполнил (отредактировал) еще 5 полей. Юзер 3 ... и т.д.
Тебя может удивит но иногда это все гуляет по кругу.
Я не говорю что логирование всегда плохо и что это вообще плохо. Я говорю, что это накладно, и посему делать это надо ОПРАВДАНО.
clickmaker (2007-11-06 15:55:00) [29]
> правило количество исправлений и удалений после разбора
> сокращается, иногда очень значительно
по закону сохранения энергии, оно увеличивается в других конторах, куда ушли уволенные после разбора сотрудники )
stud (2007-11-06 15:52:00) [30]Sergey13 © (06.11.07 14:38) [6]
А в чем по твоему заключается работа пользователей в БД? По моему как раз в воде, редактировании и удалении записей.
для пользователей основная работа - ввод данных. редактирование, удаление это уже побочный эффект связанный с некачественной "основной" работой.
Desdechado © (06.11.07 15:12) [9]
Такие данные единственно могут понадобиться для "разбора полетов", если кто-то что-то испортил и не признается.
и кстати как правило количество исправлений и удалений после разбора сокращается, иногда очень значительно)))
Desdechado (2007-11-06 15:12:00) [31]Такие данные единственно могут понадобиться для "разбора полетов", если кто-то что-то испортил и не признается.
Но при этом лог следует выгружать с заметной периодичностью во внешний файл и закатывать на болванки, очищая место в БД для нормальных данных.
Sergey13 (2007-11-06 15:06:00) [32]> [7] PEAKTOP © (06.11.07 14:51)
Тормоза не гарантированы и на "бюджетном" железе. Просто надо понимать, что запись "каждого чиха" требует ресурсов, а они из воздуха не берутся и святым духом не питаются.
Кроме того (опять же из опыта) надо сначала найти человека, который этими данными будет реальнопользоваться. Делать это только ради "чтоб було" смысла никакого.
PEAKTOP (2007-11-06 14:51:00) [33]>Sergey13 © (06.11.07 09:57) [3]
> Соответственно и производительность будет ... ну ты понял.
А ежели мы на железо денег не пожалеем, то можно и каждый чих в логи писать.
Тестировалось на Intel Core2duo / 4096DDR2 / RAID10 на SATA 160ГБ.
>Sirus (03.11.07 08:31) [0]
А есть ли у твоих заказчиков таке железо ?
Sergey13 (2007-11-06 14:38:00) [34]> [5] stud © (06.11.07 14:27)
> ну это если пользователи только и занимаются что исправлением
> только что введенных данных.
А в чем по твоему заключается работа пользователей в БД? По моему как раз в воде, редактировании и удалении записей.
> при грамотной работе пользователей))) объем не такой уж
> и большой
Это типа поставить им ZUMA и отдыхать? 8-)
stud (2007-11-06 14:27:00) [35]Sergey13 © (06.11.07 9:57) [3]
Ибо объем лога будет на порядки выше объема данных и расти будет очень быстро.
ну это если пользователи только и занимаются что исправлением только что введенных данных. при грамотной работе пользователей))) объем не такой уж и большой
clickmaker (2007-11-06 12:31:00) [36]
> Sirus (03.11.07 08:31)
не пускать юзера прямо в базу. А изменение, удаление и вставку записи выполнять либо черех ХП, либо через запросы, в которых уж можно протоколить все, что угодно
Sergey13 (2007-11-06 09:57:00) [37]> [0] Sirus (03.11.07 08:31)
> Есть какие-нить соображения или наработки, поделитесь опытом.
Про тригеры уже сказали.
Но по моему опыту есть соображение, что делать такой логинг стоит ОЧЕНЬ осторожно и после тщательного думания на тему "А оно мне вообще надо?". Ибо объем лога будет на порядки выше объема данных и расти будет очень быстро. Соответственно и производительность будет ... ну ты понял.
atruhin (2007-11-03 11:05:00) [38]В IB Expert пункт меню "Инструменты\Менеджер протоколов данных", выбираешь что логировать,
он сам создаст нужные тригера и таблицы.
Reindeer Moss Eater (2007-11-03 10:08:00) [39]Триггеры