powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как получить статистику о DML таблицы?
22 сообщений из 22, страница 1 из 1
Как получить статистику о DML таблицы?
    #39405435
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
У меня такая задача - определить в каких таблицах делаются изменения и как часто. Самое простое, что приходит в голову повесить на каждую по триггеру и логировать DML в отдельную таблицу. Может есть проще или интереснее решения?
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405443
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

mon$table_stats в 3.0

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT
  t.mon$table_name,
  r.mon$record_inserts,
  r.mon$record_updates,
  r.mon$record_deletes,
  r.mon$record_backouts,
  r.mon$record_purges,
  r.mon$record_expunges,
  ------------------------
  r.mon$record_seq_reads,
  r.mon$record_idx_reads,
  r.mon$record_rpt_reads,
  r.mon$backversion_reads,
  r.mon$fragment_reads,
  ------------------------
  r.mon$record_locks,
  r.mon$record_waits,
  r.mon$record_conflicts
FROM mon$record_stats r
  JOIN mon$table_stats t ON r.mon$stat_id = t.mon$record_stat_id
WHERE t.mon$stat_group = 0



Правда статистика сбрасывается после b/r или рестарта сервера
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405447
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

mon$table_stats в 3.0

У меня 2.5
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405452
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

знаю, но не вижу хороших решений для 2.5. Логирование триггерами только для того чтобы получать статистику не очень хорошая идея. По крайней мере производительность модифицирующих DML просядет точно. Для репликации оно ещё понятно, но для статистики, которая нужна только админу, перебор.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405454
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, необходимо реализовать механизм перезаливки данных в случае краха БД, для этого нужно иметь хотя бы примерную статистику в какие таблицы и как часто идет запись, чтобы сориентироваться по ПК и залить данные с предыдущего бэкапа.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405455
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

а не проще ли настроить обычную репликацию
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405459
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, IBReplicator дает существенный оверхэд, а HQBird пока в состоянии проверки. Ну и задача стоит "шоб було" :)
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405460
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, почему бы не ориентироваться по полю timestamp? Помнится, как-то очень давно ковырял ERP Platinum, так там в каждой таблице было поле timestamp, которое конкретно в этой ERP использовалось при обновлении записи с проверкой на прочитанный timestamp, чтобы не держать блокировку записи.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405464
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devGallemar, почему бы не ориентироваться по полю timestamp?
А почему бы тогда не брать timestamp в триггере и вносить в таблицу мониторинга? ;)
Поле c привязкой к дате/времени есть не на всех таблицах, причем мне надо раздеть I/U/D.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405471
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, я, видимо, чего-то не догоняю...
С timestamp ты без всякой статистики можешь получить количество добавленных и обновленных записей за определенный промежуток времени (если в триггере на обновление это будет предусмотрено и триггер будет менять значение поля timestamp при обновлении).
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405473
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devGallemar, я, видимо, чего-то не догоняю...
С timestamp ты без всякой статистики можешь получить количество добавленных и обновленных записей за определенный промежуток времени (если в триггере на обновление это будет предусмотрено и триггер будет менять значение поля timestamp при обновлении).
Ну или так. В общем навешаю триггеров и будет мне happy
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405478
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

добавленных без проблем. Если не считать повторы редактирования одной и той же записи, то с редактированием тоже норм. А вот с удалениями будет облом.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405483
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, если закладываться на хранение статистики в обычной таблице, то не факт, что ты сможешь прочесть актуальную статистику, если база действительно рухнет, а поле timestamp в каждой записи от тебя "никуда не убежит".
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405487
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, если в базе пользователям доступно только логическое удаление (пометка на удаление), а физическое производит только квалифицированный специалист в период проведения тех.работ с базой, то проблем быть не должно.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405491
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, Денис - ключевое слово - документы. А если у меня документ (спецификация и шапка) по 7 таблицам размазана? И от типа документа зависит как он будет размазан.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405496
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, индексированное поле timestamp в каждой из семи таблиц? Да, БД будет пухнуть, а что поделать?
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405497
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, триггер на таблице с определением действия в триггере, записью имени таблицы и timestamp
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405502
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, тогда уж проще вести журнал действий пользователя - убьешь двух зайцев.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405503
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, журнал уже есть, но не все справочники контролирует
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405505
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, сделайте чтоб все контролировал. Зачем плодить сущности без надобности?
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405513
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, программа не моя, а рыть на предмет где какая таблица за какой справочник отвечает и как часто его пользователи времени нет. Нужна статистика. Быстро и просто.
...
Рейтинг: 0 / 0
Как получить статистику о DML таблицы?
    #39405535
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, так у вас в журнале действий пользователя регистрируется идентификатор комплекса таблиц, отвечающих за хранение конкретного справочника, а не каждая таблица в которую действиями пользователя внесены изменения с указанием первичного ключа этой таблицы? В таком случае, делай, как сам считаешь нужным. ИМХО, все варианты были предложены.
Могу еще предложить небольшой "лайфхак", помогающий хорошенько обдумать проблему и найти решение. ;)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как получить статистику о DML таблицы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]