⭐️ Повышение производительности в РЕД Базе Данных 5.1
В работе часто встречается необходимость в фильтрации записей по сложным условиям, связанным с наличием данных в других таблицах. Для этого используются предикаты IN и EXISTS, реже ANY и SOME.
🔥 Для эффективного решения таких задач СУБД применяет операцию полусоединения - SEMI JOIN
👀 Как она работает?
В отличие от обычного JOIN полусоединение находит первую удовлетворяющую условию запись, а не перебирает их все, исключая повторы в итоговой выборке. SEMI JOIN отсутствует в синтаксисе явно, но существует как внутренний механизм исполнения в сервере.
Начиная с РЕД Базы Данных 5.1 оптимизатор теперь автоматически выбирает стратегию полусоединения: HASH JOIN (semi) или NESTED LOOP JOIN (semi). Критерием выбора служит размер внешнего потока данных. Если ожидается небольшое количество записей, применяется NESTED LOOP, для крупных данных — HASH JOIN.
✅ Преимущества
Повышение производительности запросов с IN/EXISTS на порядок
⛓ Скачивайте РЕД Базу Данных 5.1.2
Post #270
602

- 🔥 2