@pgsql

Страница 712 из 1062
Max
15.03.2018
12:02:00
Подскажите почему при anti join оптимизатор не использует индексы? https://stackoverflow.com/questions/5274851/postgres-anti-join-needs-table-scan Проблема описана тут и set enable_seqscan to off; ее решает, но хотелось бы более правильное решение

Darafei
15.03.2018
12:04:53
статистика свежая?

вообще - смотреть внимательно в косты конкретного запроса с и без set enable_seqscan to off;

Max
15.03.2018
12:05:54
Запрос вот, любой из двух

Google
Max
15.03.2018
12:05:54


это план без set enable_seqscan to off;



Ilia
15.03.2018
12:06:36
Я думаю это специфический случай, а не характерный. Т.е. не анти джойн определяет использование индекса. А неиспользут по общим причинам

Max
15.03.2018
12:06:47
А это уже с set enable_seqscan to off;



Darafei
15.03.2018
12:07:43
посмотри в кост индекс онли скана, он же у тебя зашкаливает

Max
15.03.2018
12:08:55
ну это мультикаломный индекс по двум полям, может из за этого?

Darafei
15.03.2018
12:09:45
из чего складывается кост индекс онли скана?

Айтуар
15.03.2018
12:10:15
Напиши тогда статью, на хабре например. И ещё вопрос - на 2 серваках можно развернуть с ним HA кластер, или нужен 3-й с арбитром?

Darafei
15.03.2018
12:10:40
vacuum этой таблице делал?

Max
15.03.2018
12:11:22
Google
Darafei
15.03.2018
12:12:23
а твой запрос с индекс онли сканами по факту быстрее?

Max
15.03.2018
12:12:51
а твой запрос с индекс онли сканами по факту быстрее?
без них 45 мин, с ними пока не знаю, выполняется еще

Darafei
15.03.2018
12:13:26
потому что если ты забыл сделать vacuum, то index only scan может стать ещё хуже, чем seq scan

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

Yaroslav
15.03.2018
12:14:01
Darafei
15.03.2018
12:14:05
а что если просто всё переписать на EXCEPT?

Max
15.03.2018
12:14:35
а что если просто всё переписать на EXCEPT?
дольше работает, сейчас скину план

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

Darafei
15.03.2018
12:15:35
для начала по возможности сделать cluster по индексу и сделать vacuum analyze

а оттуда начинать копать вглубь

Max
15.03.2018
12:16:00


Darafei
15.03.2018
12:16:19
а сколько у тебя work_mem?

http://pgtune.leopard.in.ua/ cделан? :)

Max
15.03.2018
12:17:45
http://pgtune.leopard.in.ua/ cделан? :)
этого не знаю, у меня нет доступа к серверу бд

Darafei
15.03.2018
12:18:57
эмм, у вас есть DBA?

Max
15.03.2018
12:19:21
)) нет

Darafei
15.03.2018
12:19:30
если у тебя нет доступа к серверу, и на нём дефолтовый work_mem, то им скорее всего просто забыли заняться

Сергей
15.03.2018
12:19:37
4MB
тут был хороший стикер

Darafei
15.03.2018
12:20:00
этого не знаю, у меня нет доступа к серверу бд
давай начнём с детских проблем

Google
Darafei
15.03.2018
12:20:21
1) http://pgtune.leopard.in.ua/ как минимум 2) vacuum analyze;

и после этого уже смотреть в планы

Darafei
15.03.2018
12:24:01
скорее всего у тебя тупо сортировка в except не влезает в work_mem, хотя могла бы

и оттого хочет делаться на диске

возможно, тебе просто нужен except, в который ты добавишь два одинаковых order by, чтобы скан был по индексу, а не по таблице

Aw
15.03.2018
12:39:08
Давайте все хранить в текстовых файлах, это же так удобно.?

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