Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как получить статистику о DML таблицы? / 22 сообщений из 22, страница 1 из 1
16.02.2017, 09:18
    #39405435
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить статистику о DML таблицы?
Добрый день
У меня такая задача - определить в каких таблицах делаются изменения и как часто. Самое простое, что приходит в голову повесить на каждую по триггеру и логировать DML в отдельную таблицу. Может есть проще или интереснее решения?
...
Рейтинг: 0 / 0
16.02.2017, 09:32
    #39405443
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить статистику о DML таблицы?
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
16.02.2017, 09:38
    #39405447
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить статистику о DML таблицы?
Симонов ДенисGallemar,

mon$table_stats в 3.0

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

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

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

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


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