
Dmitry
21.07.2017
09:41:27
pg_locks + pg_stat_activity

Alexander
21.07.2017
09:43:02
спасибо

Anton [Mgn, az09@osm]
21.07.2017
09:54:16
каждый
Индекс хоть один есть в этой таблице?

Alexander
21.07.2017
09:55:29
Извините, я ввёл вас в заблуждение. Оказалось это не таблица, а вью над таблицей с 50М строк. Так что вопрос снят

Google

Darafei
21.07.2017
09:58:25
вообще, explain (analyse, verbose, buffers) показал бы количество прочитанных буферов

Alexander
21.07.2017
10:00:11
просто надо было мне \d+ name сделать, прежде чем вопросы задавать

Dmitry
21.07.2017
10:11:04
Товарищи, тут появилась необходимость резервировать инстанс постгреса, настроил я значит репликацию через wal, и у меня возник естественный вопрос, а как же приложение будет знать кто сейчас мастер? какие есть бестпрактис и инструменты для вот этого дискавери?

Anatoliy
21.07.2017
10:14:50
select pg_is_in_recovery()

Andrey
21.07.2017
10:17:02

Alexey
21.07.2017
10:18:46

Anatoliy
21.07.2017
10:18:52
Хм, видимо я как-то иначе понял вопрос…

Аггей
21.07.2017
10:18:55
https://github.com/mhagander/bgw_replstatus
Есть в официальной репе
Желательно впереди еще pgbouncer

Dmitry
21.07.2017
10:30:02
ухх, я ожидал серьёзного подхода, поизучаю, спасибо. Изначально у меня были мысли во имя простоты наделать наколенных скриптов и через что-то (например nginx) резолвить один ip, который будет пользовать приложение, на соответствующий инстсанс

Mike Chuguniy
21.07.2017
10:32:24
nginx как прокси к ПГ - это модно, задорно, молодёжно!

Google

Mike Chuguniy
21.07.2017
10:32:30
Я баловался. :)

Dmitry
21.07.2017
10:33:07
и как? :)

Mike Chuguniy
21.07.2017
10:37:34
Работает, а что ему доспеется. На нагрузку не проверял, каюсь, не до того было. Ну и с таймаутами надо колдовать - это понятно, я думаю
Для тех, кто нгинкс знает полуТше хапрокси - настраивается проще и быстрее.

Dmitry
21.07.2017
10:44:13
да там прям нагрузки и не придвидится, а с какими таймаутами колдовать?

Mike Chuguniy
21.07.2017
10:50:39
Таймауты - это которые держат соединение. А то запустишь длинный запрос, а нгинкс посчитает, что соединение не активно и прикроет его. Я, кстати, на это напарывался. Только разбираться лень было.
Навскидку вот этот: https://nginx.ru/ru/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

Dmitry
21.07.2017
10:53:18
вотоночо, да, надо учесть, хотя за такие задержки больше дефолта руки поотрывают:)

Mike Chuguniy
21.07.2017
11:30:59
Запросы ведь не только вида select name, pwd_hash from users where user_id = 1234 бывают. так что...

Dulat
21.07.2017
15:15:03
При pg_restore в новую пустую базу создались дупликаты практический всех строк(даже id идентичны). Бэкап сделал с pg_dump -Fc. Из-за чего такое может произойти? Как лучше убрать дупликаты

Alexander
21.07.2017
15:18:32
на букву 'С' только нажмите после запуска
Спасибо вам за совет. Поставил, запустил, отсортировал по нагрузке на CPU. Список запросов почти всегда пустой, иногда мелькают разные запросы, загружают процессор на 250% или около того и исчезают. Так и должно быть? :)
Уточнил таблицу через -d. Вижу, что autovacuum на одной таблице работает очень долго (около 3 минут)

Nikolay
21.07.2017
15:29:42
Hewlett-Packard Enterprise Japan Co, Ltd. 1. May 22, 2017. PostgreSQL 10 New Features. With Examples

Dmitry
21.07.2017
15:31:02

Andrey
21.07.2017
15:31:35
Кстати, ещё одно нововведение - hash index теперь пишутся в WAL. А кто-нибудь знает, почему раньше не писались? Не позволяла какая-то архитектурная особенность или просто руки не доходили? Если смотреть код, вроде, ничего необычного.

Leonid
21.07.2017
15:33:41
Друзья, а кто-нибудь слышал про PgConf.Siberia?

Dmitry
21.07.2017
15:34:41
PgConf.Siberia в рамках DevFest Siberia 2017
вот что нашел https://pgconf.ru/201709

Eugene
21.07.2017
15:35:09

Dmitry
21.07.2017
15:42:50
https://www.postgresql.org/docs/10/static/sql-createstatistics.html

Google

Dmitry
21.07.2017
15:42:58
а кто может расказать для чего это?
ага, для планера, офигенно

Stas
21.07.2017
15:48:09
а кто может расказать для чего это?
Сейчас статистика это гистограмма значений в каждой колонке, и если в запросе несколько условий по разным полям, то этой информации может сильно не хватать. Например пользователей до 18 много, пользователей с должностью CEO тоже много, а тех у которых оба этих условия — нет
И планнер промахнется с оценкой — просто перемножит вероятности. А с парной гистограммой можно будет сказать, что таких почти нет

Vadim
21.07.2017
15:50:15
https://blog.2ndquadrant.com/pg-phriday-crazy-correlated-column-crusade/

Andrey
21.07.2017
16:03:24

ildus
21.07.2017
16:34:52
https://commitfest.postgresql.org/13/740/

Subb98
22.07.2017
14:09:06
http://sqlfiddle.com/#!17/7b1d4/15/6
Привет ещё раз. Утром задавал вопрос касаемо запроса UPDATE
Для удобства сделал это всё на приблизительной схеме.
Так вот, как это добро можно оптимизировать?
На реальном проекте это очень долго выполняется.

Subb98
22.07.2017
14:10:58
Интересует именно оптимизация запроса. А не архитектура.

Pavel
22.07.2017
14:45:43
Все селекты максимально денормализовать в materialized view
И добавить функциональных индексов

Subb98
22.07.2017
14:48:59
Функциональные индексы создаются на этапе формирования схемы?

Pavel
22.07.2017
14:49:14
Да

Subb98
22.07.2017
14:49:52
ОК, к модификации схемы у меня доступа, вероятно, не будет. А про materialized view почитаю, спасибо.

Pavel
22.07.2017
14:51:40
Создение view это тоже модификация схемы

Admin
ERROR: S client not available

Google

Pavel
22.07.2017
14:52:12
Но их можно создавать где-нибудь в своей схеме куда есть доступ.

Subb98
22.07.2017
14:52:56
Гм, так... То есть, создать ещё один маппинг и уже из него дёргать данные?
Костыльно как-то...

عاصم بن حارث
22.07.2017
14:53:55

Subb98
22.07.2017
14:54:22
Ну да, тоже верно...
Меня смущает одно.

عاصم بن حارث
22.07.2017
14:54:34
+?

Subb98
22.07.2017
14:54:45
В проекте уже был старый запрос, который, вроде, работал.
Очень похож на тот, что сейчас делаю я.
А этот запрос выполняется очень медленно, несколько минут, я даже не могу дождаться.
Какой-то ужас.

Pavel
22.07.2017
14:55:40
А не иметь доступа к модификации схемы не костыльно?

Subb98
22.07.2017
14:56:20
Чтобы там всё полетело к праотцам? :DDD
Нет, не костыльно.

Pavel
22.07.2017
14:57:35
Ну вот там есть как раз для такого схема (не общее устройство имеется в виду а неймспейс)
Тебе создают твою схему и дают права делать в ней что угодно. А к главной схеме права на чтение только.
И там можно создавать мат. вьюхи, накладывать на них индексы и все остальное.

Subb98
22.07.2017
14:59:04
Нет, ну понятно, что локально я могу творить, что хочу. Но это добро будет потом мержиться в master.
И этот merge может всё поломать.

Google

Сергей
22.07.2017
15:00:56
Тесты есть?

Subb98
22.07.2017
15:02:03
Эм, нет, я почти ни разу их не писал.
Буду учиться в ближайшее время.
А на самом проекте, конечно, используются.

Pavel
22.07.2017
15:02:51

Subb98
22.07.2017
15:03:47
А какой смысл мне менять локально структуру БД (и не коммитить новый маппинг), если на продакшне это будет выполняться в прежних условиях очень долго?

Pavel
22.07.2017
15:04:15
Так я говорю про создание схемы на проде