|
AQO — адаптивная оптимизация запросов в PostgreSQL | ☑ | ||
|---|---|---|---|---|
|
0
tomsv
28.10.22
✎
17:30
|
В СУБД Postgres Pro Std 14.x (которая вроде как бесплатная) появился дополнительно поставляемый модуль aqo. Раньше он был доступен только в версиях Enterprise.
Появилось желание/необходимость протестировать, как работает эта штука. Собственно, был запрос, генерируемый платформой, который тормозил (Отображение динамического списка с РЛС). Многократное его повторение никаких изменений не вызывало, план запроса не менялся из раза в раз, что логично, так как у постгре нет процедурного кэша, как у МС СКЛ. Лезем в postgresql.conf, добавляем в shared_preloaded_libraries модуль aqo, устанавливаем aqo.mode = 'learned' , рестартуем постгре. После этого уже на второй раз выполнения этого запроса план начинает меняться и в итоге время исполнения сокращается с 23299.460 ms до 2508.456 ms т.е. практически в 10 раз! Ссылка на план запроса ДО https://explain.tensor.ru/archive/explain/d3db83af15cd62a32958c6578c40a57e:0:2022-10-28#explain Ссылка на план ПОСЛЕ https://explain.tensor.ru/archive/explain/79c74e171e3d6eadbd31870fad9177a9:0:2022-10-28#explain Понимаю, что можно было попросить программиста 1С оптимизировать код, но не это было целью, собственно. Вообще у модуля AQO много разных режимов работы. Обучение можно останавливать и использовать "имеющиеся наработки", чистить и прочее. Почитать можно тут https://postgrespro.ru/docs/postgrespro/14/aqo Фактически это подобие процедурного кэша в МС СКЛ. По мере необходимости эксперименты продолжу. У кого есть какие-то наработки по работе с этим модулем, давайте делиться опытом! |
|||
|
1
Фрэнки
28.10.22
✎
17:35
|
Возьму ветку на заметку :-)
|
|||
|
2
Волшебник
модератор
28.10.22
✎
17:35
|
(0) О, класс!
|
|||
|
3
ansh15
28.10.22
✎
19:15
|
>> у постгре нет процедурного кэша
Есть. PREPARE/EXECUTE называется. В pgbench есть параметр -M prepared, с ним тест выполняется до 1.5-1.7 раза быстрее. Используется ли эта возможность в 1С я не знаю. |
|||
|
4
ansh15
28.10.22
✎
19:34
|
Модуль года два как доступен https://habr.com/ru/company/postgrespro/blog/508766/
Есть ли наработки и статистика по его применению в среде 1С тоже неизвестно. Как то собрал Postgres с ним для теста, в режимe learn в бугхалтерии и зарплате неоспоримых преимуществ не ощутил, а в forced сваливалось в блокировки, на одном пользователе.. И потом, это проприетарная штука, сегодня дали в общий доступ, завтра забрали, не все же будут покупать Pro редакцию. |
|||
|
5
Arh01
28.10.22
✎
22:15
|
(1) +1
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |