@pgsql

Страница 440 из 1062
Ilya
24.08.2017
09:17:38
еще раз для тех кто в танке. постгре вычисляет какой индекс зайдет лучше. его и юзает

Anufant
24.08.2017
09:40:32
причем в поиск загребется и то где время не нужное.
Но как объянить, что по этому индексу, если выборка происходит, то довольно быстро? Я вообще думал, что составной индекс в данном случае будет рабоать лучше, потому что условно говоря будет тот же самый временной, но не по всему множеству записей, а по сильно ограниченному.

индекс время-тип пробовали? :)
Не пробовал, но пока не понимаю, как он вообще может помощь, мне кажется это тоже самой, что индекс только времени, только с лишними данными

Google
Anufant
24.08.2017
10:35:24
может быть вам посмотреть в сторону partial index-а?
Если я правильно понимаю, мой индекс как раз и был partial, ведь там было условие object_type <> ‘type1’. Я еще пробовал создать индекс where object_type=‘type2’ ( интересуемый меня тип ), но это не изменило ситуацию. Возможно, конечно, что я где-то в процессе делал ошибки или забывал запускать команду Analyze, для исключения этого надо будет еще раз все телодвижения повторить

Anufant
24.08.2017
10:39:36
есть object_type = ‘type2’

Darafei
24.08.2017
10:40:40
а если дописать object_type <> ‘type1’ and object_type = ‘type2’?

Anufant
24.08.2017
10:41:42
попробую

спасибо

Darafei
24.08.2017
10:43:12
вообще, вот например в постгисе всё иногда плохо с эстимациями

и нужный план там иногда можно получить методом where (a.geom && b.geom) and (a.geom && b.geom)

Timur
24.08.2017
10:44:58
Всем привет. Подскажите, как вы решаете подобные задачи: Есть индекс, используемый очень редко, но все-же используемый. Весит много, в связи с объемом таблицы - хорошо бы его похерить. Найти какой именно запрос и какой именно кусок приложения его юзает не удалось ни в коде, ни в pg_stat_statements. Можно ли как-то по - человечески узнать, какой именно запрос заставляет планировщик дергать данный индекс?

Maxim
24.08.2017
10:45:58
Привет! Кто может немножко помочь с pgool? Есть две ноды postgresql в разных городах. Настроена нативная репликация (master/slave). Если одну ноду добавить в рядом расположенный pgpool, все хорошо. Если добавить вторую(slave в другой стране) - все начинает очень тормозить. Вопрос-почему?

Google
Maxim
24.08.2017
11:09:37
С сетью все хорошо. Да и пусть убегает(отстает максимум на 3 сек), на slave не должны запросы идти. В логах ничего интересного(

Timur
24.08.2017
11:38:35
Да, спасибо, попробую грохнуть его и отследить запрос.

Айтуар
24.08.2017
11:41:06
А кто использовал в качестве хранилища для холодных партиций NFS шару? И вообще это не убьёт БД если шара например отвалится или не примонтируется при старте сервака?

Darafei
24.08.2017
11:51:20
Не лучше ли будет использовать FDW?
не на всякий NAS постгрес поставишь

Айтуар
24.08.2017
11:51:21
Не лучше ли будет использовать FDW?
может и лучше, но у меня ресурсы только такие.

Dmitry
24.08.2017
11:51:30
Айтуар
24.08.2017
11:52:04
доступ только через NFS, там бекапы храним. Думал может и холодные данные туда же запихнуть в отдельный tablespace. Чтобы не делать бекапы этих партиций.

Ilya
24.08.2017
11:55:16
а если чтото размонтируется или ктото свич дернет?

Darafei
24.08.2017
11:55:16
если такое и творить, то я бы делал отдельный постгрес для NFS и отдельный для остального

Ilya
24.08.2017
11:55:39
есть подозрение что бд пизданецо

Айтуар
24.08.2017
11:56:38
есть подозрение что бд пизданецо
Вот и я думаю тоже. Ладно будем тогда скидывать бекапы партиций, и дропать на БД.

Ilya
24.08.2017
11:57:21
я б на другой сервер партиции кидал

Ildar
24.08.2017
11:57:40
возможно будет ругаться, что каннот рид блок № такой-то. Вряд ли при этом упадет весь клястер

Айтуар
24.08.2017
11:59:12
Не буду экперименты ставить всё таки это прод )

Darafei
24.08.2017
12:00:34
из наших сегодняшних логов вот: [2017-08-24 09:49:39] ERROR: could not read block 4325446 in file "pg_tblspc/16400/PG_10_201707211/16402/782904863.33": Input/output error [2017-08-24 09:49:39] server closed the connection unexpectedly [2017-08-24 09:49:39] This probably means the server terminated abnormally [2017-08-24 09:49:39] before or while processing the request. [2017-08-24 09:49:39] no connection to the server [2017-08-24 09:49:39] connection to server was lost

Google
Darafei
24.08.2017
12:01:31
нет, у нас своя атмосфера

Alexander
24.08.2017
12:01:48
диск сбойнул?

Darafei
24.08.2017
12:06:01
файлики покорраптили

Darafei
24.08.2017
12:09:24
кажется, да

вкусности ещё, правда, не опробовали

Айтуар
24.08.2017
12:15:35
кажется, да
уже на проде?

Darafei
24.08.2017
12:18:14
вот из отпуска вернусь и буду катить в прод :)

Anton [Mgn, az09@osm]
24.08.2017
12:33:32
10 катить (потому что круглая), а 11 - вколачивать?))

Петр
24.08.2017
15:01:37
ребята накидайте несколько годных способов редактирования больших файлов (десятки/сотни ГБ)

mb
24.08.2017
15:02:24
А что будете изменять?

Alex
24.08.2017
15:03:04
vim

Алексей
24.08.2017
15:03:16
sed -i ?

Dmitry
24.08.2017
15:03:28
grep + sed

Alex
24.08.2017
15:03:31
sed вот тоже говорят неплох +1

Петр
24.08.2017
15:04:07
что еще кроме этого

Dmitry
24.08.2017
15:04:13
emacs

Алексей
24.08.2017
15:04:34
emacs
падсталом.

Петр
24.08.2017
15:05:13
Google
Петр
24.08.2017
15:05:30
лан, ничего нового похоже нет

Алексей
24.08.2017
15:06:04
emacs
winword ;)

Dmitry
24.08.2017
15:06:28
winword ;)
тогда уж сразу notepad.exe

mb
24.08.2017
15:15:42
ребята накидайте несколько годных способов редактирования больших файлов (десятки/сотни ГБ)
Такие большие файлы нужно или предварительно нарезать split-ом и править обычными редакторами, или писать скриптик для потокового редактирования.

Admin
ERROR: S client not available

Nikolay
24.08.2017
15:17:36
Коллеги, добрый день, кто может объяснить момент по рекурсивным запросам?

Anatoliy
24.08.2017
15:20:32
Вы задавайте вопрос, а вам кто сможет - поможет

Nikolay
24.08.2017
15:28:24
Мне не понятно, что означают "аргументы" в скобках после BRANCH, WITH RECURSIVE BRANCH(IDPARENTCATEGORY, IDCATEGORY, LEVEL) AS (...). В доках про это ничего не написано. А пытаюсь я решить следующую задачу: есть таблица-"дерево" с полями id, tree_node_id и другими информационными. Нужно выбрать всех родителей по заданному id. Рабочий запрос получился таким: WITH RECURSIVE tree_nodes_rec AS ( SELECT id, tree_node_id, name FROM tree_nodes WHERE id=29 UNION SELECT tn.id, tn.tree_node_id, tn.name FROM tree_nodes_rec AS tnr, tree_nodes AS tn WHERE tn.id = tnr.tree_node_id ) SELECT * FROM tree_nodes_rec; Я ищу способ перенести WHERE id=29 в последний селект, чтобы получить SELECT * FROM tree_nodes_rec WHERE id=29; возможно ли так сделать или я трачу время впустую?

Nikolay
24.08.2017
15:42:00
я думаю, что перенести в последний select не выйдет, т.к. WITH не может принимать параметров
Я тут нагуглил, что https://stackoverflow.com/a/27860315/3134155 можно создать view как в этом ответе, но я не до конца понимаю как во view передаётся условие

Dmitry
24.08.2017
15:42:50
можно сделать функцию и вынести значение (29) в аргументы

Nikolay
24.08.2017
15:45:22
хорошая идея. А в конце концов сработает ли подстановка в этом запросе? WITH RECURSIVE tree_nodes_rec AS (... WHERE id=$1...) ...;

Ну это на случай если не мудрить и оставить как есть.

Dmitry
24.08.2017
15:54:13
Я тут нагуглил, что https://stackoverflow.com/a/27860315/3134155 можно создать view как в этом ответе, но я не до конца понимаю как во view передаётся условие
А в этом примере условие никуда особо и не передается, оно применяется сверху к CTE (https://explain.depesz.com/s/imd6), то есть фильтруется уже результат.

срабатывают обычные rewrite rules для view

http://sqlfiddle.postgrespro.ru/#!17//1320

Google
Nikolay
24.08.2017
15:59:11
Примерно понятно, спасибо

Кому интересно: WITH RECURSIVE tree_nodes_rec(idbr, tree_node_id, name, woof) AS ( SELECT id AS idbr, tree_node_id, name, false AS woof FROM tree_nodes UNION ALL SELECT tnr.idbr, tn.tree_node_id, tn.name, NOT woof FROM tree_nodes_rec AS tnr, tree_nodes AS tn WHERE tn.id = tnr.tree_node_id ) SELECT idbr, tree_node_id, name, woof FROM tree_nodes_rec WHERE idbr=29; Вот как разрешилось

Nikolay
24.08.2017
16:09:17
Насколько большая? В принципе в ней простые менюшки, каталоги магазина (отсилы 100-200 позиций)

а как обычно поступают тогда, чтобы повысить эффективность?

Dmitry
24.08.2017
16:11:11
ну как раз поместить условие глубже в запрос

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

https://postgrespro.ru/docs/postgrespro/9.6/queries-with

см. Вычисление рекурсивного запроса

Nikolay
24.08.2017
16:22:40
Все, разобрался, огромнейшая благодарность

Anton [Mgn, az09@osm]
24.08.2017
17:47:29
тогда уж сразу notepad.exe
Вот вы смеетесь а волковкоммандер умел оочень большие файлы редактировать например. Во времена когда "640 кб хватит на всё" приходилось выкручиваться

Ну как большие, в досе то

Anton [Mgn, az09@osm]
24.08.2017
18:28:28
Ему и хватало
Особенно если мышку не подгружать )

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