Рекомендации Помощника по Azure для выделенного пула SQL в Azure Synapse Analytics

В этой статье описываются рекомендации для выделенного пула SQL, доступные в Помощнике по Azure.

Выделенный пул SQL предоставляет рекомендации, которые помогают непрерывно оптимизировать рабочую нагрузку хранилища данных для повышения производительности. Рекомендации тесно интегрированы с Помощником по Azure, что позволяет получать рекомендации непосредственно на портале Azure. Выделенный пул SQL собирает данные телеметрии и предоставляет рекомендации для активной рабочей нагрузки в ежедневном ритме. Ниже описаны поддерживаемые сценарии рекомендаций, а также инструкции по применению рекомендуемых действий.

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

Неравномерное распределение данных

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

Отсутствующие или устаревшие статистические данные

Неоптимальная статистика может существенно ухудшать производительность запросов из-за того, что оптимизатор запросов SQL создает неоптимальные планы запросов. В следующем документе приводятся рекомендации по созданию и обновлению статистики:

Чтобы просмотреть список таблиц, которых касаются эти рекомендации, выполните скрипт T-SQL. Для создания этих рекомендаций Помощник непрерывно выполняет один и тот же скрипт T-SQL.

Таблицы репликации

Для рекомендаций реплицированной таблицы Помощник определяет варианты таблиц на основе следующих физических характеристик.

  • Размер реплицированной таблицы
  • Number of columns
  • Тип распределения таблиц
  • Количество разделов

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

В разделе ниже описаны методы основанной на рабочих нагрузках эвристики, которые вы можете найти для каждой рекомендации реплицированных таблиц на портале Azure.

  • проверка avg — среднее количество возвращенных записей в процентах для каждой таблицы за последние семь дней;
  • частое чтение без обновления— указывает, что не было обновления таблицы за последние семь дней, хотя и происходило действие доступа;
  • соотношение чтения или обновления — соотношение частотности доступа к таблице к ее обновлению за последние семь дней;
  • действие — измеряет использование на основе действия доступа. Это действие сравнивает действия доступа к таблице со средним значением действия доступа к таблице базе данных хранилища данных за последние семь дней.

В настоящее время Помощник будет отображать только четыре варианта реплицированной таблицы за раз с кластеризованными индексами columnstore, обозначающими наивысшую активность.

Важно!

Рекомендация по реплицированной таблице не является доказательством глупости и не учитывает операции перемещения данных. Сейчас мы работаем над добавлением этого метода эвристики, но пока что вы должны проверить рабочую нагрузку после применения рекомендации. Чтобы узнать больше о реплицированных таблицах, см. статью Руководство по проектированию для использования реплицированных таблиц в хранилище данных SQL Azure.

Адаптивное (Gen2) использование кэша

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

Состязание за tempdb

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

Неправильная настройка загрузки данных

Обязательно загружайте данные из учетной записи хранения в том же регионе, в котором находится выделенный пул SQL, чтобы минимизировать задержку. Используйте оператор COPY для приема данных с высокой пропускной способностью и разделите промежуточные файлы в учетной записи хранения, чтобы максимально увеличить производительность. Если вы не можете использовать оператор COPY, API SqlBulkCopy или bcp с большим размером пакета также позволяют улучшить пропускную способность. Дополнительные инструкции по загрузке данных см. в рекомендациях по загрузке данных.