@pgsql

Страница 328 из 1062
Artem
11.05.2017
11:12:09
6Гб и запросы выполняются минутами? Самая лучшая рекомендация - рефакторинг схемы и запросов, остальное - временное и симптоматическое лечение
спасибо - по этому пути и идем. Но еще волнует вопрос нормально ли держать на одном инстансе 80 баз к которым подключается 3-4 человека к каждой базе из клиента.

Anton [Mgn, az09@osm]
11.05.2017
11:13:29
только через эксперимент вопрос можно разрешить. 5 евро, Карл!

и то почасовая оплата

Denis
11.05.2017
11:14:14
А как у вас производится подключение к базам? Напрямую/каждая база-свой балансировщик/общий балансировщик для всех баз?

Google
Artem
11.05.2017
11:14:29
Напрямую

только через эксперимент вопрос можно разрешить. 5 евро, Карл!
с удовольсвием - но я не админ - а разработчик - у нас админы на фрилансе все очень медленно - собираю инфу пока чтобы вынести на обсуждение в команде и порешить эту проблему. Могу сказать что в локальном окружении - запросы тоже медленно выполняются (есть просто банально кривые и проблемные) - при том что я конекчусь только к одной базе и у меня быстрый компьютер) Но кроме как пофиксить эти запросы хочется разобраться в архитектуре и сделать ее оптимальной.

Anton [Mgn, az09@osm]
11.05.2017
11:17:49
что-то вспоминается дедушка Крылов )

Roman
11.05.2017
11:18:07
А как вы бэкапите большие бд?

Denis
11.05.2017
11:18:10
Я бы подумал над тем, чтобы воткнуть между серверные процессами и постгресом балансировщик и гарантировать каждой базе свой коннект. Чтобы если одна задумается, остальные не стояли в ее очередь. Это костыль, но вдруг поможет

Anton [Mgn, az09@osm]
11.05.2017
11:18:49
Roman
11.05.2017
11:19:07
Anton [Mgn, az09@osm]
11.05.2017
11:20:04
наверно только через файловый бэкап всего кластера, но пусть лучше скажут знающие люди %)

Artem
11.05.2017
11:22:39
что-то вспоминается дедушка Крылов )
зачем же так категорично.)

Anton [Mgn, az09@osm]
11.05.2017
11:23:57
зачем же так категорично.)
аллегорично всего-лишь :-р >кроме как пофиксить эти запросы отсюда и начни

не более одного шага за один раз(с)дао программиста

Artem
11.05.2017
11:25:24
Спасибо) Я еще вернусь.

Darafei
11.05.2017
11:38:07
Google
Петр
11.05.2017
11:38:23
другое дело)

Mike Chuguniy
11.05.2017
11:44:55
Спасибо, да еще думаю чтобы тяжелые отчеты вынести при помощи репликации на другой инстанс.
Никак статистика какая? Переделывать архитектуру приложения - единственный верный путь в подавляющем большинстве случаев. Но надо смотреть.

Vova
11.05.2017
11:57:00
для постгиса нужны иксы?

чет он сильно много пакетов требует (убунта)

Сергей
11.05.2017
11:57:42
сомнительно

Stas
11.05.2017
11:57:44
для постгиса нужны иксы?
в клеточном ядре)

Anton [Mgn, az09@osm]
11.05.2017
11:59:51
чет он сильно много пакетов требует (убунта)
скорее всего не только постгис ставишь. не осм случаем рендерить собираешься? ?

Vova
11.05.2017
12:00:14
геосервер чтоб поднять)

Anton [Mgn, az09@osm]
11.05.2017
12:01:23
ну там понятно что иксы нужны, на экран то намазывать

Darafei
11.05.2017
12:04:17
чет он сильно много пакетов требует (убунта)
ты можешь поучаствовать финансово в осуществлении https://github.com/Oslandia/SFCGAL/issues/136

тогда от постгиса отвалится 600 метров зависимостей

Dmitriy
11.05.2017
12:54:24
Ребят. Есть таблица. В ней есть 2 поля int. По этим двум полям сделан составной кластеризиванный btree индекс. При селекте в WHERE я эти два поля указываю, но Eplain почему-то seq scan показывает... Куда капнуть?

Darafei
11.05.2017
12:55:51
@dmitriy_vasilyev покажи explain

возможно, селективность неправильная, возможно, ты выбираешь примерно всю таблицу

Dmitriy
11.05.2017
12:57:20
explain analyze select * from flowlog where timestart > 0 AND timeend = 0

это запросик

записей попадающих под условие ~200

Darafei
11.05.2017
12:58:12
analyze таблице после cluster делал?

Google
Dmitriy
11.05.2017
12:58:40
да, вижу :)

сделал кластер и аналайз

Не помогло

Anton
11.05.2017
13:04:48
Коллеги, а кто может по планировщику запроса подсказать ? почитал у пгпро, они тестировали на 366+ партициях и 140 пользователях и данные были более менее вменяемые, даже без оптимизаций. Сегодня ночью пришел мега софт и сейчас имеем картину когда на планирование вставки в таблицу с 1200 партициями уходит 2500 мс и кушается 600 метров памяти

Dmitriy
11.05.2017
13:05:39
парень из postgrespro говорил, что over 100 партиций уже плохо

К моему сабжу. Create-код индекса CREATE INDEX "timeIndex" ON public.flowlog USING btree (timestart, timeend); ALTER TABLE public.flowlog CLUSTER ON "timeIndex";

Denis
11.05.2017
13:08:41
Не помогло
Vacuum freeze вам поможет, у вас не обновлена карта видимости

Dmitriy
11.05.2017
13:09:51
табличка пока маленькая, все выполняется быстро. Но кода в продакшн пойдет, то сильно распухнет

Denis
11.05.2017
13:12:23
А покажите план после заморозки

Нет, ну может, конечно, планировщик считает, что без индекса дешевле... а попробуйте выставить enable_seqscan=off и посмотрите время запроса через индекс

Anton
11.05.2017
13:15:01
А сколько строк сейчас в таблице? Не получается так что из-за малого их числа планировщик решает, что seqscan будет быстрее?

Denis
11.05.2017
13:15:50
По плану выдаёт 475, а отбросило 252261

Dmitriy
11.05.2017
13:15:53
251602

Denis
11.05.2017
13:16:43
Хммм... выключайте секскан и план запроса в студию)

Dmitriy
11.05.2017
13:17:18
enable_seqscan=off - это не понял где сделать

в конфигу нельзя субд в продакшене

я себе базу отдельную просто сделал

Denis
11.05.2017
13:17:46
Не, это в сессии

Google
Dmitriy
11.05.2017
13:18:12
ALTER TABLE public.flowlog CLUSTER ON "timeIndex";

Dmitry
11.05.2017
13:18:23
и че, это до первого апдейта

Dmitriy
11.05.2017
13:18:40
я не апдейтю поля

Denis
11.05.2017
13:18:41
а что значит кластеризированный? это фантастика, нету в pg кластеризированных индексов :)
Не фантастика. Кластеризация - разовая операция, когда строки физически перекладываются в соответствие с индексом. Разово!

Dmitry
11.05.2017
13:19:10
я не апдейтю поля
а вакуум так не считает :)

который проставляет там всякие hint bits

Admin
ERROR: S client not available

Dmitriy
11.05.2017
13:19:31
у меня insert/delete only

Dmitry
11.05.2017
13:20:11
у меня insert/delete only
delete по физике это часть операции update :)

Denis
11.05.2017
13:20:42
enable_seqscan=off - это не понял где сделать
В psql напишите set enable_seqscan=off и в данной сессии у вас не будет использоваться сканирование

Ну и посмотрим время выполнения в таком режиме. И план

Denis
11.05.2017
13:22:45
Так. А индекс у вас есть? Покажите \d таблица

Dmitriy
11.05.2017
13:23:14
set enable_seqscan=off; explain analyze select * from flowlog where timestart > 0 and timeend = 0;

Denis
11.05.2017
13:23:25
А, ок. Индекс есть)

Вообще очень странно, почему планировщик сам не использует индекс

А покажите индекс

Я думаю, у вас порядок колонок не верный

raksita
11.05.2017
13:25:00
Denis https://www.postgresql.org/docs/9.6/static/release-9-6-3.html

Google
raksita
11.05.2017
13:25:15
"Fix possible crash when rescanning a nearest-neighbor index-only scan on a GiST index (Tom Lane)"

Dmitriy
11.05.2017
13:25:21
К моему сабжу. Create-код индекса CREATE INDEX "timeIndex" ON public.flowlog USING btree (timestart, timeend); ALTER TABLE public.flowlog CLUSTER ON "timeIndex";

Alex
11.05.2017
13:25:25
А кто из Dmitriy Vail'ev и Dmitriy Vail'ev бот а кто человек?

raksita
11.05.2017
13:25:40
это про тот баг зарепорченный?

Denis
11.05.2017
13:28:26
Dmitriy
11.05.2017
13:28:45
Я менял, результат одинаковый

последовательность такая везде: в таблице, в индексе и запросе

CREATE TABLE public.flowlog ( timestart integer, timeend integer,

Denis
11.05.2017
13:30:00
Я менял, результат одинаковый
в индексе поменяйте))

у вас в начале строгий отбор, потом условие больше. конечно оно по индексу иначе не будет работать

"Fix possible crash when rescanning a nearest-neighbor index-only scan on a GiST index (Tom Lane)"
похоже, это оно. но мне в рассылку письмо о закрытии бага не пришло

https://www.postgresql.org/search/?m=1&l=8&q=14641

Denis
11.05.2017
13:35:38
Ну конечно. Говорите drop index timeindex , а потом create index timeindex on flowlog (timeend, timestart)

Dmitriy
11.05.2017
13:36:03
Но смысла я до конца так и непонял

Если не сложно, подробнее

Denis
11.05.2017
13:37:18
Поверьте, он есть? прочитайте http://use-the-index-luke.com/sql/anatomy/the-leaf-nodes , там все понятно

Страница 328 из 1062