Иногда одна функция COALESCE может отправить PostgreSQL «не туда».
Планировщик видит условие соединения, но из-за COALESCE не может нормально использовать статистику исходных колонок. В результате выбирает Nested Loop, хотя для конкретного запроса гораздо лучше подошел бы Hash Join.
Мы нашли способ научить планировщик заглядывать внутрь COALESCE и использовать уже собранную статистику.
Как это работает — разбираем на Хабре.
↗️Читать статью
Tantor в Max и VK
Post #393
315

- 🔥 6
- 👍 1