Перейти к содержимому
Последнее обновление

Настройка планов DML: поиск узких мест при загрузке и выполнении запросов

Проверки перед настройкой​

Перед началом настройки планов DML проверьте следующее:

  • Можете ли вы чётко отделить время, затраченное на этап загрузки, от времени, затраченного на этап выполнения запроса.
  • Изучили ли вы Profile / Query Plan, чтобы определить оператор или этап с наибольшим временем выполнения.
  • Прочитали ли вы обзор загрузки, чтобы разобраться, какие методы загрузки подходят для ваших сценариев.

Определение узкого места: загрузка или выполнение запроса​

Узкие места при выполнении оператора DML (например, INSERT INTO ... SELECT) обычно возникают на одном из двух этапов. Первый шаг — определить, на каком этапе находится узкое место, а затем приступить к соответствующей настройке.

Тип узкого местаТипичные признакиС чего начать настройку
Узкое место на этапе загрузкиНизкая пропускная способность записи, большое время выполнения операторов SinkСм. обзор загрузки, чтобы выбрать подходящий метод загрузки и ознакомиться с рекомендациями
Узкое место на этапе выполнения запросаБольшое время выполнения таких операторов, как Scan, Join и агрегацияСм. другие разделы настройки планов для диагностики и настройки

Настройка загрузки​

Doris поддерживает загрузку данных из различных источников. Гибко используя возможности загрузки, предоставляемые Doris, можно эффективно загружать данные из разных источников в Doris для анализа.

  • Цель: выбрать подходящий метод загрузки с учётом источника данных и требований к оперативности их поступления, чтобы повысить общую производительность DML.
  • С чего начать: обзор загрузки.
  • Примечание: методы загрузки включают Stream Load, Broker Load, Routine Load, INSERT и другие. Подробные рекомендации приведены по ссылке выше.

Настройка запросов​

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

Часто задаваемые вопросы​

Вопрос 1: Как быстро определить, на каком этапе замедляется выполнение оператора DML: при загрузке или при выполнении запроса? Посмотрите время выполнения каждого оператора в Profile. Если много времени занимают операторы, связанные с Sink/Load, узкое место находится на стороне загрузки. Если много времени занимают операторы Scan/Join/Agg, узкое место находится на стороне выполнения запроса.

Вопрос 2: С чего начать проверку, если INSERT INTO ... SELECT выполняется медленно? Сначала проверьте, медленно ли выполняется подзапрос SELECT. Если отдельно SELECT выполняется быстро, узкое место обычно находится на стороне записи.

Вопрос 3: Нужно ли одинаково настраивать все методы загрузки? Нет. Разные методы загрузки (Stream Load, Broker Load, Routine Load, INSERT и другие) требуют разных подходов к настройке. См. обзор загрузки.