Size: a a a

pgsql – PostgreSQL

2021 February 18

AT

Andrey Tatarnikov in pgsql – PostgreSQL
профиль нагрузки (кол-во и длительность запросов) мы снимаем с клиентов, они рапортуют эту инфу, и там аномалий нет
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
да, я это читал.

> could not write to hash-join temporary file: No space left on device

это точно временные файлы.

я вам рекомендую 1. включить log_temp_files- тогда в следующий раз у вас будет возможность проверить свою гипотезу с помощью лог файлов (если вендор не обезьяна и предоставляет их). 2. выставить какойто разумный temp_files_limit чтоб вместо переполнения и риска положиьт всю базу, просто отстреливались единичные запросы которые превысили лимит (кстати это также будет видно через логи)
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
про эти вещи уже тоже подумал, log_temp_files = 0, то есть логи должны быть, будем пробовать вытащить
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Alexandr Kuvaev
Ребят, всем привет!
У меня такой вопрос, есть N таблиц, имеющие разные поля.
Есть ли хитрый индекс, который позволит объединить запросы/сделать возможным не делать запрос в каждую таблицу отдельно?
materialized view? На него можно индекс прицепить... Только перестраивать matview придётся вручную
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
ну и до кучи посмотрите что включены log_lock_waits, log_checkpoints, track_io_timing, pg_stat_statements - это вцелом чуть улучшит ситуацию с логированием и поиском проблем
источник

AK

Alexandr Kuvaev in pgsql – PostgreSQL
Konstantin Knizhnik
materialized view? На него можно индекс прицепить... Только перестраивать matview придётся вручную
вот пока на них смотрю пока, но тоже не очень подходят тк они часто должны будут обновляться
источник

AK

Alexandr Kuvaev in pgsql – PostgreSQL
Yaroslav Schekin
Который работает с помощью магии, не иначе.
Как Вы себе представляете что-то, решающее, из какого источника нужно выбрать данные для данного запроса, при этом заведомо не имея информации для такого выбора (это про вариант "несколько таблиц")?!

А по поводу "слияния" — можно написать кучу триггеров, которые будут сбрасывать все данные из этих таблиц в какую-то одну, и индексировать уже её, и к ней выполнять запросы.
Но обычно это совершенно не нужно. Мне кажется, что Вы что-то не то / не так решаете.
заранее таблицы известны просто при выборке нет задачи их различать
источник

ПЕ

Петр Егоров... in pgsql – PostgreSQL
Andrey Tatarnikov
про эти вещи уже тоже подумал, log_temp_files = 0, то есть логи должны быть, будем пробовать вытащить
к логам то у вас есть доступ? вы же писали, что есть только sql
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
Петр Егоров
к логам то у вас есть доступ? вы же писали, что есть только sql
прямого - нет, через поддержку вендора буду пробовать
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Andrey Tatarnikov
про эти вещи уже тоже подумал, log_temp_files = 0, то есть логи должны быть, будем пробовать вытащить
в логе тогда есть, только тут нюанс, в лог попадает сообщение только после завершения работы с временным файлом. Если запрос упал с ошибкой, то залогирована будет именно ошибка, а не сообщение об использовании временного файл
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexandr Kuvaev
заранее таблицы известны просто при выборке нет задачи их различать
Привели бы Вы пример [схем] этих таблиц, что ли.
И я так и не понял, зачем это нужно. Т.е. откуда такое необычное требование, что так моделируется?
источник

AK

Alexandr Kuvaev in pgsql – PostgreSQL
Yaroslav Schekin
Привели бы Вы пример [схем] этих таблиц, что ли.
И я так и не понял, зачем это нужно. Т.е. откуда такое необычное требование, что так моделируется?
Да, весьма интересная задачка, схему сейчас накидаю)
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Alexandr Kuvaev
вот пока на них смотрю пока, но тоже не очень подходят тк они часто должны будут обновляться
Есть (пока в виде патча) incremenatal materialized views. На триггерах. Но ничего не мешает вам сделать тоже самое сейчас руками - т.е. завести триггер. который будет вставлять в обобщённую таблицу.
Это, конечно, будет тормозить вставку. Но если скорость поиска вам важнее - то тогда  советую попробовать.
источник

ПЕ

Петр Егоров... in pgsql – PostgreSQL
Andrey Tatarnikov
прямого - нет, через поддержку вендора буду пробовать
тогда, думаю, в логах и так должны быть стейтменты на
"could not write to hash-join temporary file: No space left on device"
источник

AK

Alexandr Kuvaev in pgsql – PostgreSQL
Konstantin Knizhnik
Есть (пока в виде патча) incremenatal materialized views. На триггерах. Но ничего не мешает вам сделать тоже самое сейчас руками - т.е. завести триггер. который будет вставлять в обобщённую таблицу.
Это, конечно, будет тормозить вставку. Но если скорость поиска вам важнее - то тогда  советую попробовать.
наверное лучше тогда insert, update from
источник

LH

Ling Halph in pgsql – PostgreSQL
select namesa || 'a' from public.nametable
подскажите почему такая ошибка?

на стаке пример со множеством плюсов
UPDATE table SET array_field = array_field || 'new item' WHERE ...
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Alexandr Kuvaev
наверное лучше тогда insert, update from
Этого я не понял. Но в процессе ревизии incremental materialized views я наткнулся на интересную проблему,  о которой надо не забыть, если вы будете сами делать решение на триггерах. Если объединяющая таблица является результатом join-а нескольких таблиц и вы вешаете триггеры на вставку в каждую из них, то без дополнительной синхронизации может получится некорректный результат.
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Ling Halph
select namesa || 'a' from public.nametable
подскажите почему такая ошибка?

на стаке пример со множеством плюсов
UPDATE table SET array_field = array_field || 'new item' WHERE ...
где-то у вас не те кавычки. Примерно каждый десятый вопрос о причине ошибке в запросе в этом чате вызван этим. Где бы найти такой FAQ где это всё написано и как заставить людей его читать прежде чем задавать вопросы...
источник

LH

Ling Halph in pgsql – PostgreSQL
Konstantin Knizhnik
где-то у вас не те кавычки. Примерно каждый десятый вопрос о причине ошибке в запросе в этом чате вызван этим. Где бы найти такой FAQ где это всё написано и как заставить людей его читать прежде чем задавать вопросы...
select videos || array['a'] from public.videoalarms

работает. с теми же кавычками
источник

AT

Andrey Tatarnikov in pgsql – PostgreSQL
а конкатенировать массив и строку разве можно?
источник