Векторизованный движок выполнения

Векторизованный движок выполнения — это высокопроизводительный движок, специально разработанный для столбцовых систем хранения (таких как MARS2 и AOCO). Для типовых запросов он обеспечивает прирост производительности на один-два порядка по сравнению с традиционными движками, ориентированными на обработку строк.

По сравнению со скалярными движками, преимущества векторизованных исполнителей обусловлены следующими факторами:

  • Пакетная обработка снижает накладные расходы выполнения
  • Обработка небольших пакетов повышает локальность данных, улучшая производительность доступа за счёт удержания данных в кэше CPU
  • Выбор оптимального пути обработки в зависимости от характеристик данных
  • Снижение накладных расходов на вызовы функций и дополнительное повышение эффективности за счёт использования инструкций SIMD (Single Instruction, Multiple Data) процессора
  • Обработка по столбцам с подгрузкой данных по требованию, что исключает загрузку бесполезных данных

Подробное объяснение векторизации представлено в следующих разделах:

Начало работы с быстрой векторизацией

Лучшие практики векторизации

Технология оптимизации с помощью runtime-фильтров