@pgsql

Страница 248 из 1062
Mike Chuguniy
18.02.2017
14:43:06
А, ну инсерт... Используйте COPY

Denis
18.02.2017
14:43:30
А, ну инсерт... Используйте COPY
я вставлю через copy денормализоанные данные, а потом выясняю их нормальную форму и вставляю из одной таблицы в целевую сс помощью insert from select. Разве можно вставлять данные из одной таблицы в другую в помощью COPY?

COPY — копировать данные между файлом и таблицей

Google
Darafei
18.02.2017
14:46:06
ну, вне текущего контекста - можно, и это пока что, например, единственный способ получить таблицу через parallel seq scan

но вообще insert into ... select должен шустро работать

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

Anton [Mgn, az09@osm]
18.02.2017
14:50:00
@Komzpa пошто из https://t.me/ruosm ливнул? Кроме тебя никто ответить не сможет наверно на мой вопрос ?

Darafei
18.02.2017
15:16:34
@Komzpa пошто из https://t.me/ruosm ливнул? Кроме тебя никто ответить не сможет наверно на мой вопрос ?
примерно оттого и ливнул. а так - планета меньше суток на адекватном железе грузится, параллелить машинами там нет смысла - можно взять какой imposm, он ещё быстрее втягивает.

Anton [Mgn, az09@osm]
18.02.2017
15:17:57
Но если нет адекватного железа а есть несколько так себе что делать?

Darafei
18.02.2017
15:20:17
продать и купить адекватное. на хетцнере адекватное для домашнего применения стоит 40 евр в месяц.

Anton [Mgn, az09@osm]
18.02.2017
15:22:29
Да если бы домашнего

Sergey
18.02.2017
16:23:36
всем привет... не ставиться на 7 сентос 9.6 с postgrespro точнее ставиться, но не запускается ... в логах ошибка юнита postgres

блин не туда .. ;) надо на линукс ...

Shaz
18.02.2017
16:28:12
блин не туда .. ;) надо на линукс ...
А там тебе посоветуют сменить дистр

Петр
18.02.2017
17:10:24
ошибку покажите

Sergey
18.02.2017
18:28:00
да не ... дистр я менять не буду ... именно 9.6 хотел попробовать ... ладно вернусь на 9.5

Google
Артур
19.02.2017
00:39:06
Как для postgres написать это? UPDATE mods_estateaddress , mods_estateaddress_arguments SET mods_estateaddress.tth_architect_type='1' WHERE mods_estateaddress_arguments.name = 'tth_architect_type' AND mods_estateaddress.id = mods_estateaddress_arguments.sub AND mods_estateaddress_arguments.value = '1'

Сорри, кажется понял UPDATE ... SET ... FROM ... WHERE ....

id ~E'^\\d+$' Я как понимаю это не регулярка? И что это тогда?

Хотя беру свои слова обратно я работал с PRCE регулярками - а это POSIX

Sergey
19.02.2017
05:58:47
Я таки присоединюсь к просьбе показать ошибку.
да я бы с удовольствием. токма снес уже и поставил более старую версию (9.4 с постгреспро)... но, если реально хотите помочь, опять поставлю ;))

Magistr
19.02.2017
07:51:39
А что сейчас есть из софта для управления кластером/репликацией постгреса ?

а во нашел repmgr

Андрей
19.02.2017
08:56:53
corosync+pacemaker)

Артур
19.02.2017
16:18:17
#статистика Postgres: обновление одного поля в ~500 000 записей c получением данных из другой таблицы с ~10 000 000 записей запросом UPDATE table_main SET column_main=table_arguments.value FROM table_arguments WHERE table_arguments.name = column_arguments AND table_main.id = table_arguments.sub Происходит ~30 минут А с запросом UPDATE table_main SET column_main=CASE WHEN table_arguments.value ~E'^\\d+$' THEN CAST(table_arguments.value AS INTEGER) ELSE null END FROM table_arguments WHERE table_arguments.name = column_arguments AND table_main.id = table_arguments.sub Происходит ~45 минут

Darafei
19.02.2017
16:20:57
а план?

Артур
19.02.2017
16:22:17
а план?
какой план?

Darafei
19.02.2017
16:22:25
план запроса

Артур
19.02.2017
16:23:04
из одной таблицы забрать данные и поместить в другую, чтобы убрать оттуда потом эти данные

Статистику скинул для информации. Вряд ли кто упорется и будет так делать просто эксперимента ради

Darafei
19.02.2017
16:24:00
план покажи, explain (analyze, verbose, buffers)

ну или хотя бы без analyze

Артур
19.02.2017
16:24:23
:) ну только не сейчас чуть позже



Google
Артур
19.02.2017
16:26:19
если можно как-то налету анализировать, тогда я сделаю

Darafei
19.02.2017
16:26:37
autoexplain?

Артур
19.02.2017
16:27:08
нет, типа show processlist, но в направлении анализа

Если такое есть, я могу выполнить запрос и скинуть скрин результата

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

Maksim
19.02.2017
16:28:13
пропатчить правда посгрес придётся

Darafei
19.02.2017
16:28:46
ну, на explain без analyse можно и так посмотреть же ж?

Артур
19.02.2017
16:28:59
а, сорри, не так прочитал

https://github.com/postgrespro/pg_query_state
Хороший вариант, но сейчас его не применить. Предлагаю подождать всетаки выполнения процедуры и потом сделаю и эксплейн и анализ

Dmitry
19.02.2017
17:22:12
нет, типа show processlist, но в направлении анализа
Жаль что в pg нет до сих пор поля state

http://prntscr.com/ear4py

Maksim
19.02.2017
17:25:21
http://prntscr.com/ear4py
это откуда пример?

Dmitry
19.02.2017
17:25:46
живой пример.

http://prntscr.com/ear5sm

https://dev.mysql.com/doc/refman/5.7/en/general-thread-states.html

Артур
19.02.2017
18:02:32
может липит для эксплейна поставить?

чтобы не ждать 30 минут

@Komzpa чего скажешь?

Google
Darafei
19.02.2017
18:03:17
сделай эксплейн без ничего

Артур
19.02.2017
18:03:44




Чего здесь, хоть расскажите.

Ато для меня это вообще каша :)

А раз выложил, тоже интересно :)

Darafei
19.02.2017
18:07:08
это всегда так интересно, когда люди проводят замеры, не понимая, что они, собственно, замеряли

Артур
19.02.2017
18:07:25
)))

Dmitry
19.02.2017
18:07:52
https://explain.depesz.com/

чтобы читать не понимая что снял :)

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

Артур
19.02.2017
18:10:13
ну то есть получается что на апдейт и мёрдж тратится больше времни чем на остальное. Ну как бы это логично. Или бывает иначе?

В общем я статистику скинул. Если кроме полезна инормация и поможет при планировании времени на аналогичные алгоритмы (ну чтобы самим не проверять), я очень рад

Darafei
19.02.2017
18:12:26
Чего здесь, хоть расскажите.
https://robots.thoughtbot.com/reading-an-explain-analyze-query-plan

Артур
19.02.2017
18:13:28
В закладки забросил, чтобы коллегам тоже дать почитать

Darafei
19.02.2017
18:13:51
закладки не заменяют мозг

это нужно прочитать и осознать, чтобы не тратить часы на ненужные замеры

Maksim
19.02.2017
18:25:08
ну то есть получается что на апдейт и мёрдж тратится больше времни чем на остальное. Ну как бы это логично. Или бывает иначе?
не пробовали апдейтить небольшими кусками а не целым батчем в 500К строк? У вас в плане запрос над таблицами, отличными от тех что в запросе

Darafei
19.02.2017
18:29:21
мне пока что кажется, что индекс по btree (sub) where name='address' по второй таблице сделал бы из мержа seq scan на апдейт + index scan, и это было бы, возможно, быстрее мержа

а так там даже work_mem на sort не хватает

Google
Darafei
19.02.2017
18:32:40
@Archeebald work_mem не 4 мб часом? :)

Denis
19.02.2017
19:02:28
Появился один вопрос по постгресу. И так имеем два запроса: ... ORDER BY A <-> B LIMIT 620 и ... ORDER BY A <-> B LIMIT 630 Первый работает классно: быстро и по индексу Второй работает плохо: оч. долго и вручную сортирует все. В принципе я выяснил что knn индекс так и должен работать. Непонятен вопрос, как ограничен лимит? Есть какие-то ссылки по теме?

Darafei
19.02.2017
19:03:12
...покажи план? :)

Lev
19.02.2017
19:03:51
@Komzpa с анестетиков сразу на план присел =)

Denis
19.02.2017
19:06:50
https://explain.depesz.com/s/Hx7 https://explain.depesz.com/s/p0a

http://www.slideshare.net/jkatz05/knn-39127023 - нашел это. 22 слайд

Darafei
19.02.2017
19:08:51
Sort Method: external merge Disk: 1896kB

и у тебя work_mem в 4 мб? :)

Denis
19.02.2017
19:09:24
Я на микроволновку поставил

Чтобы проблемы на меньших объемах вылезали

Darafei
19.02.2017
19:10:52
ну, основная проблема - это всё-таки '+proj=hammer'::text, ибо hammer - equal-area, а меряшь ты distance :)

@den1970 show work_mem

Denis
19.02.2017
19:13:23
дефолтнй воркмем

проекция в принципе любая дает один результат

Darafei
19.02.2017
19:15:35
если любая, то почему в 4326 не оставишь? :)

Denis
19.02.2017
19:17:27
Даже нативный POINT() <-> POINT() дает такой же результат

Darafei
19.02.2017
19:17:27
в общем, ты хотел, чтобы оно стреляло раньше - оно стреляет раньше. сильно раньше. :)

Denis
19.02.2017
19:18:13
Ну это то понятно. Просто непонятно от чего зависит предел LIMIT

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