В ближайший четверг в 16:33 состоится доклад Морозова Алексея на тему «Debunking the Myth of Join Ordering: Toward Robust SQL Analytics».
Аннотация:
Оптимизация порядка соединений (JOIN) — одна из самых сложных задач для SQL-оптимизаторов. Ошибки в оценке кардинальности могут привести к катастрофическим планам выполнения — например, когда промежуточные результаты вырастают в тысячи раз, хотя итоговый ответ пуст.
Существующие методы (например динамического перепланирование) помогают, но требуют дорогой перестройки плана на лету. Авторы этой статьи предлагают Robust Predicate Transfer (RPT) — алгоритм, который:
- Использует Bloom-фильтры для предварительной фильтрации данных,
- Гарантирует, что даже при самом плохом порядке соединений запрос выполнится за время O(N + OUT),
- Улучшает производительность в 1.5 раза для TPC-H и JOB.
Разберём, как авторы пришли к этому решению и как они встроили этот алгоритм в DuckDB и посмотрим очень много тестов
Скоро начинаем. Ссылка для подключения: https://yandex.zoom.us/j/92419106876