Yaroslav Schekin
> обновили на стенде
> мы в принципе в силах поменять версию на удаленной машине..
Ну так и почему remote — не последняя minor version (вот Вы сейчас сидите и думаете, а возможно, это просто bug, и решить это можно было обновлением за пять минут)? ;)
> Тут как раз все параметры дефолтные, как из коробки идут, с ними даже не играли
use_remote_estimate=true — это не default. ;) Я это вот к чему:
Оценка раз:
Finalize GroupAggregate (cost=8164774.32..11236955.67 rows=10939253 width=16)
И оценка два:
Foreign Scan (cost=8132740.63..11708041.72 rows=1 width=16)
Тут вообще оценки не совпадают — foreign scan startup
дешевле, чем на remote (такого не должно быть, насколько я помню... разве что там данные активно меняются)!
И полные оценки стоимости исполнения тоже отличаются на непонятную величину (11708041.72 - 11236955.67) = 471086.05 — это вообще ни на что не похоже.
тут я попробую немного оправдаться) Версию постгрес не меняли - т.к. локальная машина на удаленной выполняет exaplain, получает строчку, сканит ее - собственно, кажется, что все.. и не должно зависеть в принципе от версии постгрес, если на удаленной машине не явно некорректные значения. Ну по крайней мере так кажется.
Да, use_remote_estimate=true - не дефолт, поэтому я и указал ее, остальные в дефолте, fetch_size еще установлен на 10000, но тоже не кажется, что он может влиять. остальное только хост, порт, имя базы.
Касательно оценок - согласен, по сути, наверно в этом и есть вопрос, есть статистика на локальном сервере, может ли она с опцией use_remote_estimate влиять на финальную оценку, несмотря на то, что запросы explain отправляются корректно.
Кстати, тоже интересная штука (я еще не смотрел причины), но если перезалить локальный сервер (локальной статистики нет вообще для удаленных таблиц), то все запросы выдают дикие планы выполнения, а если после этого локально запустить analyze удаленных таблиц, то все начинает работать нормально кроме описанного кейса. Просто, мне казалось, что при use_remote_estimate локальная статистика вообще не должна использоваться, а тут (это предположение), кажется что она как-то, да влияет.. Я бы и рад прочитать об этом, но нигде подробной информации не нашел.