Есть ли у BigQuery оптимизатор на основе правил или затрат или другой? - PullRequest
0 голосов
/ 25 марта 2019

Мне любопытно, какой тип оптимизатора он использует, поэтому я могу оптимизировать свою базу данных и запросы, чтобы соответствовать.

Я знаю, что основанный на затратах предназначен для определения наиболее эффективного способа выполнения оператора SQL, но онне может достичь этого без хорошей, актуальной статистической информации о данных, к которым осуществляется доступ.При подходе на основе затрат факторы оптимизатора представляют собой статистическую информацию о содержимом конкретных объектов схемы (таблиц, кластеров или индексов), к которым осуществляется доступ.

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

Я считаю, что это основано на стоимости, но я не совсем уверен.Может ли кто-нибудь предоставить мне больше информации о том, почему это может быть один или другой?Спасибо!

1 Ответ

0 голосов
/ 25 марта 2019

В BigQuery отсутствует автоматическое правило для экономии затрат. Лучший способ - следовать рекомендациям BigQuery: контроль затрат

Пожалуйста, смотрите ниже некоторые правила, которые я считаю весьма полезными:

Правило 1

Избегать SELECT *
Рекомендация: запрашивайте только те столбцы, которые вам нужны.

Правило 2

Пример данных с использованием параметров предварительного просмотра
Рекомендация. Не выполняйте запросы для изучения или предварительного просмотра данных таблицы.

Правило 3

Оцените ваши запросы перед их выполнением
Рекомендация. Прежде чем выполнять запросы, просмотрите их, чтобы оценить затраты.

Правило 4

Ограничение затрат на запрос путем ограничения количества выставляемых байтов
Рекомендация. Используйте максимальный счет в байтах для ограничения затрат на запрос.

Правило 5

Данные раздела по дате
Лучшая практика: разбивайте таблицы по дате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...