@pgsql

Страница 652 из 1062
Леонид
29.01.2018
17:48:26
первый





второй

Google
Arthur
29.01.2018
17:52:50
Есть удобный сервис для планов :) https://explain.depesz.com/

Andrey
29.01.2018
17:52:54
Ну тут у вас 2500мс против 2100. И видимо как раз из-за буфуров (см. buffers read в первом плане и его отсутствие во втором).

В ситуации когда запрос выполняется десятки секунд у вас скорее всего все читается с диска (не будет buffers shared hit).

Леонид
29.01.2018
17:54:58
кажется вижу, где разница

а как это пофиксить можно?

Alex
29.01.2018
18:55:15
ну если я спрашиваю, то скорее всего, мое решение чем то обосновано?
Это на самом деле не так. Есть тысяча и одно объяснение что вам так делать не надо.

Yaroslav
29.01.2018
18:57:10
а как это пофиксить можно?
Что именно? Это просто эффект кэширования данных. Тут либо кэшировать больше (добавить RAM) / читать быстрее (улучшить дисковую подсистему), либо читать меньше (оптимизировать запрос / создать подходящие индексы).

Леонид
29.01.2018
18:59:57
Понял, спасибо. Но если вот такой кейс. Юзер утром приходит запускает приложение и ждет инфу, которая нужна ему 1 раз в день. И первый запрос длится 70 сек, а второй уже 2-3. Мне тут уже советовали, поставить шедуллер, который рано утром будет для юзеров прогревать базу ?

делая запросы, на получение инфы.

Google
Леонид
29.01.2018
19:01:37
Может как-то можно узнать, сколько времени будет длиться такой кеш? Когда, например, он сбрасывается и нужно снова читать с диска.

Alex
29.01.2018
19:02:13
а как это пофиксить можно?
Можно- переписать запрос или больше памяти в сервак добавть для shared buffer . Могу сразу сказать что в пг shared buffer работает мин в 2 раза быстрее чем кэш ос. Поэтому советы про маленький shared buffer считаю вредными

Это для ос

Check point completion target для pg

Больше ничего не придумали

Yaroslav
29.01.2018
19:05:13
Может как-то можно узнать, сколько времени будет длиться такой кеш? Когда, например, он сбрасывается и нужно снова читать с диска.
Он "сбрасывается" (я про shared_buffers), когда его что-то вытесняет (т.е. запросам становятся нужнее другие данные).

Леонид
29.01.2018
19:06:11
Check point completion target для pg
Спасиб, сейчас буду гуглить все это. А то первый раз слышу, что это) кек

Yaroslav
29.01.2018
19:06:27
Не нужнее, а просто нужно
Нужнее. "Горячие" данные оттуда не очень-то вытеснишь. ;)

Check point completion target для pg
А причём тут это, кстати?

Леонид
29.01.2018
19:07:39
Он "сбрасывается" (я про shared_buffers), когда его что-то вытесняет (т.е. запросам становятся нужнее другие данные).
спасиб. Получается если shared_buffers много, то кешировать будет сколько влезет.

Леонид
29.01.2018
19:09:26
10

Yaroslav
29.01.2018
19:10:07
10
Значит, upgrade Вам не поможет. ;)

Леонид
29.01.2018
19:11:02
тогда так. 1. попробую оптимизировать запрос. 2. добавлю RAM и на крайний буду прогревать, на большее денег и времени не дадут)

Леонид
29.01.2018
19:11:31
Pg_buffercache посмотрите
читаю сейчас за это, но пока не понимаю как юзать

Петр
29.01.2018
19:12:21
Да там понимать то нечего особо

Google
Alex
29.01.2018
19:12:51
И вытеснится при первой возможности

Yaroslav
29.01.2018
19:13:26
читаю сейчас за это, но пока не понимаю как юзать
Это может не помочь, если надо узнать, надолго ли нужные данные будут оставаться в кэше, к сожалению. Т.к. это зависит от _нагрузки_ (других запросов) в интересующий Вас период времени.

Alex
29.01.2018
19:13:50
Самое оптимально для пг это оптимальные запросы

Остальное это мертвому припарки и отсрачивание агонии

Леонид
29.01.2018
19:14:36
понял, спасиб

Yaroslav
29.01.2018
19:14:54
И вытеснится при первой возможности
Ну, можно так, что и не при первой... но да, проблема в том, что не угадаешь, когда (и, возможно, очень быстро). :(

Alex
29.01.2018
19:16:07
При второй. Это рояля не меняет. Или база влезает в кеш или нет, другого не дано. Если база есть определенного размера значит она нужна вся

Yaroslav
29.01.2018
19:16:07
Самое оптимально для пг это оптимальные запросы
Ну мы-то не для PostgreSQL работаем, я надеюсь? ;) Т.е. просто добавить памяти может быть тупо выгоднее...

Yaroslav
29.01.2018
19:17:16
До поры до времени
И до этой поры может быть бесконечно далеко... разве что время DBA стоит копейки. ;)

Alex
29.01.2018
19:17:51
Если запрос кривой то можно хоть септильон мегабайт выделить

И до этой поры может быть бесконечно далеко... разве что время DBA стоит копейки. ;)
Для пг время дба стоит много больше чем для других баз

Ибо нет инструментов для быстрого разрешения инцидентов кроме как мозг дба

Все остальное от лукавого

Ктобы что не говорил

Alex
29.01.2018
19:20:53
Намного стоят лицухи и намного же стоят простои

Google
Evgeniy
29.01.2018
19:21:16
кажется на эстейт проперти надо сделать более селективный индекс

Alex
29.01.2018
19:21:32
Хмм... смотря каких инцидентов.
Для инцидентов больше чем проставить shared buffers > 128mb

Yaroslav
29.01.2018
19:23:27
Для инцидентов больше чем проставить shared buffers > 128mb
Я бы сказал наоборот, и (вроде) не так уж редко. Т.е. добавление 256 Гб памяти легко может дать больший эффект, чем недели усилий DBA. ;)

Evgeniy
29.01.2018
19:25:18
это как?
у тебя по точкам нашлось 290к записей, потом пошел джойн к проперти с кучкой фильтров и наджойнилось всего 7к записей возможно тебе поможет индекс на условие которое много отбрасывает результатов

Yaroslav
29.01.2018
19:25:22
это как?
Подождите. Если Вы хотите (и можете) именно оптимизировать запрос, занимайтесь этим. А если Вы хотите, чтобы Вам в этом помогли, занимайтесь правильно, т.е. выкладывайте \d всех таблиц, сам запрос и EXPLAIN (ANALYZE, BUFFERS). ;)

Alex
29.01.2018
19:28:09
Я бы сказал наоборот, и (вроде) не так уж редко. Т.е. добавление 256 Гб памяти легко может дать больший эффект, чем недели усилий DBA. ;)
Конечно. Это если размер базы <256 гб. Только вот по памяти такое редко у кого встречается. Ибо пг используют те у кого этих гб много меньше чем размер базы. И им надо sql знать идеально.

Petr
29.01.2018
19:29:02
ребята, есть что-то получше pg_basebackup, когда нужно забэкапить базу вплоть до индексов?

Alex
29.01.2018
19:29:13
лучше ссд добавлять
Это до поры до времени. Все равно что рамы добавить

Petr
29.01.2018
19:30:02
спасибо, посмотрю)

Alex
29.01.2018
19:30:14
Лучше только cp если в один поток

Приходите на конфу, мы там расскажем

Что почем

Yaroslav
29.01.2018
19:31:02
Конечно. Это если размер базы <256 гб. Только вот по памяти такое редко у кого встречается. Ибо пг используют те у кого этих гб много меньше чем размер базы. И им надо sql знать идеально.
Не обязательно "размер базы <256 гб". Размер бвзы может быть любой, лишь бы часто используемые данные в память +-влезали. > Ибо пг используют те у кого этих гб много меньше чем размер базы. Откуда статистика? Вообще, к сожалению, базы данных, даже opensource —- это не для нищих. :(

Petr
29.01.2018
19:31:33
а если сравнивать скорость между pg_probackup и pg_basebackup — есть ли великая разница?

Google
Petr
29.01.2018
19:33:50
ок, спасибо)

Evgeniy
29.01.2018
19:38:22
в чью сторону-то

Петр
29.01.2018
19:40:35
в чью сторону-то
Ессно бейсбэкап быстрее Хотя пробэкап не пробовал

Леонид
29.01.2018
19:47:45
ну чо?
не могу понять как и где



там юзается поиск в радиусе 100км например

и сортируется по растоянию

самые ближайшие

Evgeniy
29.01.2018
19:48:39
create index concurrently on estate_properties(building_area,latest_sale_recording_date);

Леонид
29.01.2018
19:49:08
Оо, спс. Сейчас попробую

Yaroslav
29.01.2018
19:50:00
Вы бы вставляли в виде текста (всё, о чём Вас просили) на какой-нибудь paste site, а сюда ссылку.

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