Closed vut12 closed 1 month ago
Добрый день! Большое спасибо, буду чинить.
А можете предоставить результаты выполнения запросов
select distinct sample_id from last_stat_activity_count_srv13
select last_sample_id from severs where server_id = 13
по коду получается что в отношении last_stat_activitycount... выполняется truncate в каждом снимке. Пока непонятно как получилась такая ошибка
Забыл написать, что удаляю в ручную. Сейчас еще раз попробовал. Ошибка:
select delete_samples('XXXXXXXXX',1952,1952);
ERROR: update or delete on table "samples" violates foreign key constraint "fk_last_stat_activity_count_sample_srv13" on table "last_stat_activity_count_srv13"
DETAIL: Key (server_id, sample_id)=(13, 1952) is still referenced from table "last_stat_activity_count_srv13".
CONTEXT: SQL statement "DELETE FROM samples dsmp
USING
servers srv
JOIN samples smp USING (server_id)
LEFT JOIN bl_samples bls USING (server_id, sample_id)
WHERE
(dsmp.server_id, dsmp.sample_id) =
(smp.server_id, smp.sample_id) AND
smp.sample_id != srv.last_sample_id AND
srv.server_id = delete_samples.server_id AND
bls.sample_id IS NULL AND (
(start_id IS NULL AND end_id IS NULL) OR
smp.sample_id BETWEEN delete_samples.start_id AND delete_samples.end_id
)"
PL/pgSQL function delete_samples(integer,integer,integer) line 156 at SQL statement
SQL function "delete_samples" statement 1
Успешно:
select delete_samples('XXXXXXXXX',704,704);
delete_samples
----------------
1
(1 row)
Так, из таблицы last_stat_activity_count_srv13 не удаляются данные предыдущих снимков. Скажите, а как вы обновлялись?
Воспроизвести не удалось, если не трудно, извлеките из расширения текст функций take_sample() и collect_subsamples().
Так, из таблицы last_stat_activity_count_srv13 не удаляются данные предыдущих снимков. Скажите, а как вы обновлялись?
Обновлялся с 4.4 до 4.6: распоковал релиз 4.6, добавил из релиза 4.5 файл pg_profile--4.4--4.5.sql, затем выполнил "ALTER EXTENSION pg_profile UPDATE;"
Воспроизвести не удалось, если не трудно, извлеките из расширения текст функций take_sample() и collect_subsamples().
ps. Еще добавлю. Может быть с этим связанно. После обновления возникла эта проблема https://github.com/zubkov-andrei/pg_profile/issues/92 . К тому же, как там и описано, set_server_subsampling не работает. Пришлось вручную вносить строки в server_subsample, чтобы снимки хоть как-то собирались.
select * from server_subsample where server_id=13;
server_id | subsample_enabled | min_query_dur | min_xact_dur | min_xact_age | min_idle_xact_dur
-----------+-------------------+---------------+--------------+--------------+-------------------
13 | f | | | |
(1 row)
Что-то яснее не стало. truncate в вашей функции есть, выполнение снимка должно очищать last_ таблицу...
Вчера поправил #92 и выложил новый релиз 4.6. Если вам не трудно, попробуйте еще раз - теперь всё должно работать
Truncate не запускается, если в server_subsample.subsample_enabled=false. https://github.com/zubkov-andrei/pg_profile/blob/50637dcf0ee3a529683976fe18bced8fc0123663/sample/subsample.sql#L591-L593
Не обратил внимания, поправлю, спасибо!
Добрый день! После обновления до 4.6 не удаляются новые снимки. Ошибка:
Снимки сделанные до обновления удаляются.