Перейти к содержанию

Фасет FORWARD

При указании фасета FORWARD можно получить значение опции FORWARD, с которой запрос гарантированно будет выполнен. Подробнее об опции FORWARD можно прочитать в разделе параметры для DQL-запросов.

Примеры использования

Подготовка тестового окружения

Примеры использования команд включают в себя запросы к тестовым таблицам.

OFF

EXPLAIN (FORWARD) SELECT * FROM warehouse WHERE id = 42;
forward analysis (on > ro_to_rw > off):
  forward = off

Из вывода следует, что запрос можно гарантированно исполнить без пересылок. Такое возможно, когда бакет, соответствующий ключу 42, лежит на узле, где выполняется EXPLAIN.

RO_TO_RW

EXPLAIN (FORWARD) SELECT * FROM warehouse WHERE id = 42;
forward analysis (on > ro_to_rw > off):
  forward = ro_to_rw

Вывод EXPLAIN указывает на то, что запрос можно гарантированно исполнить с одной пересылкой. Следовательно, запрошенная порция данных не лежит на текущем узле.

ON

Данное значение характерно для запросов, выполняющих полное сканирование шардированных таблиц. Например:

EXPLAIN (FORWARD) SELECT * FROM warehouse ORDER BY 1;
forward analysis (on > ro_to_rw > off):
  forward = on

Из вывода фасета FORWARD следует, что при исполнении запроса будет совершено более одной пересылки.