@pgsql

Страница 324 из 1062
Fike
08.05.2017
19:04:48
аргумент к хабру™

Darafei
08.05.2017
19:05:00
с чем может быть джоин в select case when aaa in (1,2,3) then 1 end ?

Anton [Mgn, az09@osm]
08.05.2017
19:05:46
джоин? с чем?
с табличной переменной же. ну или в пг конструкция есть которая создаёт на лету роусет

аргумент к хабру™
смайл нот детектед? ?

Google
Darafei
08.05.2017
19:07:16
там типичное деревце if-then-else, сворачивающее многообразие осма к ограниченному набору значений

Anton [Mgn, az09@osm]
08.05.2017
19:09:34
https://github.com/ThorstenHi/lyrk-mapstyle/blob/master/project.mml#L605 ничего так себе if-then-else

Darafei
08.05.2017
19:11:23
это гитхаб, ты можешь прислать патч

но я не вижу способа кардинально что-то изменить, не меняя схему данных

Anton [Mgn, az09@osm]
08.05.2017
19:13:36
это гитхаб, ты можешь прислать патч
наверно это надо мапник досконально изучить... а там си сплошные, в которых я ничего не понимаю

Darafei
08.05.2017
19:14:16
зачем мапник, тебе ведь не нравятся in? :)

Anton [Mgn, az09@osm]
08.05.2017
19:14:17
это гитхаб, ты можешь прислать патч
нажимать на самые большие кнопки? помню ?

зачем мапник, тебе ведь не нравятся in? :)
больше этого мне не нравится только NOT IN )

но я не вижу способа кардинально что-то изменить, не меняя схему данных
что если вместо "(...) as data", которое потом будет очевидно оборачиваться SELECT и WHERE по геометрии, внутрь скобок подставить шаблон этого самого where..?

Darafei
08.05.2017
19:27:40
совершенно ничего, планировщик свернёт этот запрос

Anton [Mgn, az09@osm]
08.05.2017
19:27:56
оно так и читабельней будет, не? =)

Darafei
08.05.2017
19:28:35
кому именно читабельней?

Anton [Mgn, az09@osm]
08.05.2017
19:29:19
эээ, carto?

Google
Anton [Mgn, az09@osm]
08.05.2017
19:29:42
на самом деле действительно редко ведь кто туда лезет, ты прав

Darafei
08.05.2017
19:30:11
carto вообще не в курсе о существовании постгреса

он просто отдаёт запрос мапнику, внутри которого, благодаря такой структуре запроса, не нужно писать полноценный парсер SQL, вставляющий что-то во внутренние скобки

а carto и делался как способ отделить css от sql и дать дизайнерам крутить цвета, не задумываясь о запросах, которые им написал кто-нибудь в самом начале

Anton [Mgn, az09@osm]
08.05.2017
19:38:13
сегодня я кручу sql, а завтра буду дизайнером ?

Айтуар
08.05.2017
19:56:49
да и постоянные IN расстраивают
Я вообще наших разрабов хочу удавить. За эти IN (и здесь сотни id). А потом они удивляться - а что это у нас запросы часами выполняются.

Anton [Mgn, az09@osm]
08.05.2017
20:00:18
это неправильные разрабы. и они дают неправильный код но удавливания конечно не помогут. где тут стикер "explain"? %)



Darafei
08.05.2017
20:07:07
а id in (сотни id) - это ещё нормальные разрабы. местами люди делают сотню запросов where id=N.

Айтуар
08.05.2017
20:09:22
Darafei
08.05.2017
20:10:00
я не знаю, у меня так в продакшене, никто не жаловался

Аггей
08.05.2017
20:16:17
Я, к сожалению, так плотно с pg не работал, но для oracle - у меня правило - если в in подзапрос возвращающий больше 10 значений - переделай на join или на exists на худой конец. А в pg не знаю быстрее ли exists чем in

Darafei
08.05.2017
20:23:38
у тебя work_mem заниженный

Anton [Mgn, az09@osm]
08.05.2017
20:23:54
и @Komzpa конечно котик

у тебя work_mem заниженный
как ты это делаешь?

sm=> SHOW work_mem; work_mem —------— 512MB

Google
Anton [Mgn, az09@osm]
08.05.2017
20:28:08
цпу на 56 потоков и я немного очкую каждому ворку много давать. хотя озу конечно тоже жирная, наверно можно и подбросить

Darafei
08.05.2017
20:29:00
или random_page_cost не 1.01, а 4

в общем, там бы не Bitmap index scan, а просто Index scan

Anton [Mgn, az09@osm]
08.05.2017
20:34:28
или random_page_cost не 1.01, а 4
ух, аж мурашки по коже (надо бы калорифер включить)

Darafei
08.05.2017
20:34:47
толку от этих 56 потоков, если они упрутся в io и будут перепроверять каждую подозрительную страницу целиком на соответствие запросу, вместо того, чтобы сразу взять нужную строчку

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

на твоём запросе планировщик думал, что rows=44,755,172, а оказалось, что rows=2,922

так что если не хочется чинить постгис и изобретать правильные быстрые эстиматоры для такого случая, можно просто разрешить ему брать памяти под 44 755 172 строк

возьмёт он из них только под 2 992, но нервничать перестанет

Anton [Mgn, az09@osm]
08.05.2017
20:46:50
https://explain.depesz.com/s/eVqD битмап исчез но 44 млн осталось

время наверно уже не улучшить?

Anton [Mgn, az09@osm]
08.05.2017
20:52:55
4,5 Гб ворк_мем?! ну не знаю

Darafei
08.05.2017
20:53:19
у меня 10гб

Anton [Mgn, az09@osm]
08.05.2017
20:54:04
тут либо планировщик нервничает, либо я ) придется привыкать

Darafei
08.05.2017
20:54:58
время наверно уже не улучшить?
только create index on osm_buildings_geom using gist(geometry) where type not in ('0', 'false', 'no');

Anton [Mgn, az09@osm]
08.05.2017
20:55:41
и таких еще несколько по потребностям картостиля?

Darafei
08.05.2017
20:55:58
если надо

нарендерить карту всех домов в 11х11км за 20 секунд - возможно, не очень плохо, если это ляжет в кеш

Anton [Mgn, az09@osm]
08.05.2017
21:03:19
у меня 10гб
https://explain.depesz.com/s/dtBo что-то не вижу разницы. 6 мало ему?

Google
Darafei
08.05.2017
21:03:50
нет, ворк_мем тут уже не поможет

всё влезает в память

поможет или cluster osm_buildings using osm_buildings_geom; или create index on osm_buildings_geom using gist(geometry) where type not in ('0', 'false', 'no');

Admin
ERROR: S client not available

Darafei
08.05.2017
21:05:39
ещё поможет delete from osm_buildings where type in ('0', 'false', 'no') и стереть это условие из запроса

Anton [Mgn, az09@osm]
08.05.2017
21:06:07
мудро

это как в генту собирать весь мир

хех, каламбурчик )

Darafei
08.05.2017
21:08:33
в планете всего 12 736 building=no, 1 building=0, ни одного false

можно переписать на where type != 'no' без особого вреда

если, конечно, в type не попадают значения из ещё каких-то тегов, кроме building

Anton [Mgn, az09@osm]
08.05.2017
21:12:19
можно переписать на where type != 'no' без особого вреда
https://explain.depesz.com/s/gOyi пользы тоже никакой )

Darafei
08.05.2017
21:12:44
ну, ты же не любил in

вот ты от него избавился, а разницы - никакой

Anton [Mgn, az09@osm]
08.05.2017
21:15:07
эхотаг рулит!

Alexey
08.05.2017
21:16:54
Ребят, вам оффтопик-лист вынести?

Эхотаг, сабж — это всё давно умерло. У меня тмыл уже не алё.

Anton [Mgn, az09@osm]
08.05.2017
21:23:22
Ребят, вам оффтопик-лист вынести?
с расценками пожалуйста ?

Alexey
08.05.2017
21:24:34
Сорян, тут письмо ареафиксу писать не нужно — проще выйти.

Yernar
09.05.2017
17:07:56
народ, у меня вопрос такой. я хотел бы переустановить ОС. как переносить базу данных на новую винду

Google
Dmitry
09.05.2017
17:27:27


Wom
09.05.2017
17:27:30
имхо, проще нагуглить как делать бакап, чем найти этот канал :)

Dmitry
09.05.2017
17:32:12
Нияз
09.05.2017
17:56:39
https://www.postgresql.org/ftp/pgadmin/pgadmin3/v1.22.2/win32/ через нее можно сделать бакап
только если БД маленьких размеров. не более 1-2 gb, наверное.

Dmitry
09.05.2017
17:58:01
только если БД маленьких размеров. не более 1-2 gb, наверное.
а что есть решения для basebackup уровня next-next done?

Нияз
09.05.2017
17:59:34
а что есть решения для basebackup уровня next-next done?
неа. но я имел ввиду юзать pg_dump через командную строку для больших БД.

Dmitry
09.05.2017
18:01:42
неа. но я имел ввиду юзать pg_dump через командную строку для больших БД.
да для больших баз pg использовать страшно :) pg_dump хотябы seq scan сделает и индексы перестроит

Leonid
09.05.2017
18:22:21
Кто работал с PostgreSQL в psycopg2 (Python). Можете подсказать, если с базой через скрипт работают несколько пользователей (читают из неё данные), надо ли создавать для каждого пользователя свой курсор и закрывать его после окончания его работы с базой.

Jim
09.05.2017
21:49:53
емнип, курсор для каждой сессии свой

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