Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
ORCA — это новый модульный оптимизатор запросов в YMatrix, призванный заменить традиционный планировщик PostgreSQL. Он обеспечивает значительный прирост производительности для определённых OLAP-нагрузок. По умолчанию оптимизатор ORCA отключён в YMatrix. Чтобы использовать его, необходимо явно включить параметр конфигурации optimizer. При активации YMatrix пытается использовать ORCA для генерации планов выполнения запросов. Если ORCA не может обработать запрос, система автоматически переключается на планировщик на основе PostgreSQL.
На приведённой ниже схеме показана системная граница ORCA. Сам оптимизатор расположен внизу, а над ним находится СУБД.
ORCA получает от СУБД два типа входных данных: сам запрос (Query) и метаданные (MetaData, или MD), и возвращает физический план выполнения (Plan). Все три компонента — Query, MD и Plan — представлены в формате DLX.

Внутренняя структура ORCA представлена на следующей диаграмме и включает такие компоненты, как Job Execution, Job Scheduler, Memo и OS.

Memo:
Search (Поиск): представляет три типа задач:
Job Scheduler (Планировщик задач): координирует и выполняет задачи оптимизации.
Transformations (Преобразования): правила, изменяющие выражения в Memo. Делятся на две основные категории:
Property Enforcement (Принудительное соблюдение свойств): усиливает свойства данных.
Metadata Cache (Кэш метаданных): кэширует метаданные, используемые в ходе оптимизации.
OS: низкоуровневая библиотека, отвечающая за ввод-вывод, обработку исключений, управление памятью, параллелизм и другие системные сервисы.
Когда optimizer = on, YMatrix использует ORCA вместо устаревшего планировщика. Поведением ORCA можно управлять через параметр конфигурации optimizer на уровне системы, базы данных, сессии или отдельного запроса. Чтобы изменить значение по умолчанию, выполните одно из следующих действий.
Установите параметр optimizer для всего кластера YMatrix:
mxadmin (администратором YMatrix).gpconfig, чтобы установить параметр в on:gpconfig -c optimizer -v on
mxstop -u
Используйте команду ALTER DATABASE, чтобы включить ORCA только для одной базы данных. Например, для базы test_db:
ALTER DATABASE test_db SET OPTIMIZER = ON;
Используйте команду SET, чтобы включить ORCA для текущей сессии. Например, после подключения через psql:
SET optimizer = on;
Чтобы включить ORCA только для одного запроса, поместите команду SET непосредственно перед ним.
Примечание!
Подробнее о параметрах конфигурации, связанных с ORCA, см. в разделе Параметры конфигурации оптимизатора ORCA.
Когда ORCA включён (по умолчанию он выключен), вы можете проверить, использовался ли он для конкретного запроса, проанализировав вывод команды EXPLAIN.
Если план сгенерирован ORCA, в конце вывода будет строка, указывающая на оптимизатор и его версию. Например:
Optimizer: ORCA
Если параметр optimizer установлен в off, либо если ORCA был включён, но запрос был передан устаревшему планировщику, вывод будет содержать:
Optimizer: Postgres-based planner
Примечание!
При переходе на устаревший планировщик план запроса зависит от параметров конфигурации этого планировщика. Подробнее см. в разделе Параметры управления операторами.
Следующие функции SQL не поддерживаются, когда включён ORCA:
CUBEROWROWCOMPAREFIELDSELECTON MASTER или ON ALL SEGMENTS.SELECT, UPDATE и DELETE, использующие ключевое слово ONLY при ссылке на имя таблицы.