Size: a a a

pgsql – PostgreSQL

2020 July 07

YS

Yaroslav Schekin in pgsql – PostgreSQL
Максим
А разве через конкатенациб двух сабстр нгов быстрее не будет?
Что Вы имеете в виду?
источник

SM

Sergey Mavrin in pgsql – PostgreSQL
Yaroslav Schekin
Когда возникают подобные вопросы, можно просто делать как-то так на тестовой базе:
BEGIN TRANSACTION;
ALTER TABLE xxx ALTER COLUMN yyy DROP NOT NULL;

SELECT *
 FROM pg_locks
WHERE pid = pg_backend_pid();

Есть ещё, конечно, перезапись таблицы — её можно увидеть, создав EVENT TRIGGER в базе; а также сканирование таблиц (индексов) при проверках constraint — сходу не скажу, как это удобно увидеть в сессии.
В любом случае, для Вашего конкретного вопроса должно хватить запроса выше. ;)
🤔 спасибо, попробую
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Владислав
Добрый день, есть две базы, в первой 707 GB данных и 220 GB  индексов, во второй 486 GB данных и 634 GB индексов. Схемы баз полностью идентичны, но нагрузка разная. Подскажите, пожалуйста, из за чего мог так распухнуть индекс и что с ним можно сделать?
А Вы найдите запросы для вывода bloat, и посмотрите с их помощью подробнее.
Обычно это связано с тем, что autovacuum не справляется (но бывают и патологические нагрузки, где он почти не поможет).
источник

AP

Anton Patsev in pgsql – PostgreSQL
blkmrkt
Ребят, подскажите чем в 2020 собирают метрики с Постгреса? Нагуглил пару репо, но они не обновлялись 4+ года.

Мне бы что-нибудь готовое что будет отправлять метрики в statsd или graphite. Следить за всем за чем обычно следят: статус автовакума, размеры релейшонов, лаг репликации, счетчики трансакций и висячие трансакции, дедлоки и прочее.
Вот так можно https://m.habr.com/ru/post/501696/
источник

b

blkmrkt in pgsql – PostgreSQL
прекрасно, благодарю!
источник

DY

Dima Yushutin in pgsql – PostgreSQL
привет всем:) вопрос по timescaledb
в общем есть функция, move_chunks, которая переносит определенные чанки в другой tablespace. на самом сайте написано она только в Enterprise версии, но в тот же момент она работает и на community версии без чего-то еще.
в чем прикол тогда? или подразумевается что это автоматизированно будет в enterprise версии само по себе, а в community надо ручками все настраивать?
источник

N

Nikolay in pgsql – PostgreSQL
В прошлый раз с Лесовским вышло оч. клёво, на мой взгляд (кто не смотрел — посмотрите!). Сегодня разберём накопившиеся вопросы в доке

Трансляция тут: https://YouTube.com/RuPostgres
Активное участие в zoom: https://us02web.zoom.us/j/86786396259?pwd=MklwT2UvK3hLb3RIL20xb2c4WWJBUT09
Док: https://bit.ly/RuPostgresTuesday

Начало — как обычно, в 18:30мск
источник

M

Murena in pgsql – PostgreSQL
Подскажите плиз - можно ли выставить таймаут на время выполнения транзакции - например если транзакция зависла на 30 секунд - то переводить ее в ошибку и откатывать все ?
источник

M

Murena in pgsql – PostgreSQL
или встроеного механизма для этого нету в postgresql ?
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Murena
Подскажите плиз - можно ли выставить таймаут на время выполнения транзакции - например если транзакция зависла на 30 секунд - то переводить ее в ошибку и откатывать все ?
Только на уровне стайтментов а не транзакции - statement_timeout
источник

M

Murena in pgsql – PostgreSQL
Konstantin Knizhnik
Только на уровне стайтментов а не транзакции - statement_timeout
а это не то что нужно ?
idle_in_transaction_session_timeout
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Ну вопрос - что вам нужно. Если то, что клиент открыл транзакцию и 30 секунд не присылал никакого запроса, то да - это оно.
источник

M

Murena in pgsql – PostgreSQL
Konstantin Knizhnik
Ну вопрос - что вам нужно. Если то, что клиент открыл транзакцию и 30 секунд не присылал никакого запроса, то да - это оно.
спасибо
источник

AN

Artem Nemtsev in pgsql – PostgreSQL
Почему я не могу в запросе использовать результат подзапроса в where?
SELECT (subQuery) AS «k» FROM «tb» WHERE «k» = 0
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Artem Nemtsev
Почему я не могу в запросе использовать результат подзапроса в where?
SELECT (subQuery) AS «k» FROM «tb» WHERE «k» = 0
по SQL стандарту:)
Его конечно нельзя признать очень логичным, но данном случае мы делаем выборку из таблицы tb, а потом для выбранных записей выполняем подзапрос.
источник

q

quavo in pgsql – PostgreSQL
Есть ли смысл вешать на столбец проверку, чтобы значение было больше нуля, если в этом столбце в принципе невозможна такая ситуация или все же стоит на всякий случай?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Artem Nemtsev
Почему я не могу в запросе использовать результат подзапроса в where?
SELECT (subQuery) AS «k» FROM «tb» WHERE «k» = 0
Из-за логической последовательности выполнения SQL-запросов. WHERE выполняется до select list, ссылаться "в будущее" нельзя.
В тех местах, где PostgreSQL позволяет подобные вещи, он в основном нарушает расширяет стандарт, кстати. ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
quavo
Есть ли смысл вешать на столбец проверку, чтобы значение было больше нуля, если в этом столбце в принципе невозможна такая ситуация или все же стоит на всякий случай?
Если в моделируемом реальном мире должно быть так — я бы повесил.
источник

M

Murena in pgsql – PostgreSQL
Подскажите плиз по архитектуре как лучше работать с таблицей где хранятся все транзакции по балансу пользователя, а именно если идет операция списание баланса со счета юзера - то лучше создавать транзакция с минусовым числом - или лучше чтоб число всегда было без знака минуса но добавить тип транзакции или зачисление или списание ?
источник

Ð

Ð in pgsql – PostgreSQL
с минусом
источник