|
Почему postgres создает разные планы запроса? | ☑ | ||
---|---|---|---|---|
0
bdenisska
11.03.19
✎
10:25
|
Здравствуйте, имеется проблема с отчетом по задачам. Раскопки привели к тому что в одной базе postgres составляет план запроса 1 в другой базе план другой. Что в итоге дает при равных условиях скорость формирования отчета в одной базе 2-3 сек, в другой 20-50 минут. Про влияние статистики в курсе, сбрасывал (в меделнной базе) - не помогло. Вопрос: Что еще может влиять и как исправить? могу предоставить скрины с планом отчета из pgadmin
|
|||
1
arsik
гуру
11.03.19
✎
10:30
|
(0) Конфиги то одинаковые?
|
|||
2
arsik
гуру
11.03.19
✎
10:30
|
+(1) Конфиги постгре и версии.
|
|||
3
MCh
11.03.19
✎
10:48
|
надо сбросить в быстрой а не в медленной. будет все медленно. у меня так было
|
|||
4
Вася Теркин
11.03.19
✎
10:59
|
А если быструю скопировать она остается быстрой или становится медленной?
|
|||
5
bdenisska
11.03.19
✎
11:01
|
Быстрая остается быстрой, быструю сделал сброс статистики - быстрая осталась быстрой (в ответ на(3).
|
|||
6
bdenisska
11.03.19
✎
11:02
|
(1) Одинаковые? они на одном сервере постгрес и 1с
|
|||
7
Провинциальный 1сник
11.03.19
✎
11:07
|
enable_nestloop=off решит все проблемы
|
|||
8
bdenisska
11.03.19
✎
11:10
|
(7) Дай обниму)))) Вопрос снят, действительно не обратил внимание на параметр вложенных циклов.
|
|||
9
Провинциальный 1сник
11.03.19
✎
11:11
|
(8) Не очень то радуйтесь, кое-где будет медленнее)
|
|||
10
Провинциальный 1сник
11.03.19
✎
11:12
|
+(9) Но радикального тупизма не будет.
|
|||
11
seevkik
11.03.19
✎
11:12
|
(7) ловите экстрасенса!
|
|||
12
bdenisska
11.03.19
✎
11:13
|
Я понимаю что индексы уже не будут рабоатьь должным образом. Вопрос в другом, почему возникла такая ситуация? Две аналогичных базы, и такой разный результат и сброс статистики никак не влияет?
|
|||
13
Провинциальный 1сник
11.03.19
✎
11:17
|
(12) Всё будет работать нормально. Просто постгрес начнет использовать нестед луп не когда попало, а только когда без него в принципе не обойтись.
Оптимизатор в постгресе чересчур оптимистичный, и очень часто занижает стоимость вложенных циклов. ОСОБЕННО, если используются подзапросы, а это в 1с сплошь и рядом. |
|||
14
bdenisska
11.03.19
✎
11:19
|
(13) Спасибо за ответы и подсказки! Теперь все встало на свои места
|
|||
15
ansh15
11.03.19
✎
11:33
|
(12) Так сами SQL запросы, генерируемые сервером приложений 1С для PostgreSQL для быстрой и медленной баз, одинаковые символ в символ, или все же есть какое-то различие?
|
|||
16
bdenisska
11.03.19
✎
12:43
|
(15) Абсолютно одинаковые, из одного дампа были подняты
|
|||
17
bdenisska
11.03.19
✎
12:48
|
(15) А немного не понял вопроса сначала, дело в том что нет времени сейчас разбираться, НО делал эксплейн запроса который уже летит в постгрес. Скорость исполнения аналогичная была, для быстрой быстро для медл. соотв. - различаются планы построения запроса, писал об этом
|
|||
18
Провинциальный 1сник
11.03.19
✎
12:59
|
(17) Эта багофича в постгресе проявилась сразу же, как только 1с начала его использовать. И за 10 лет так и не смогли радикально решить проблему.
Правильнее было бы при наличии подзапросов принимать решение о стратегии выполнения запросов верхнего уровня только после того, как выполнятся подзапросы и будет известна точно их статистика. Но для этого нужно радикально переделывать движок субд, чего никто делать не хочет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |