Повысьте производительность своей базы данных SQL Azure (и сэкономьте деньги!) с помощью автоматической настройки

Tags: Azure, SQL, базы данных, database

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

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

Модели покупки базы данных SQL Azure

Корпорация Майкрософт предоставляет вам две модели закупок для баз данных SQL Azure (база данных SQL), DTU (модуль транзакций базы данных) и модель на основе vCore (логические процессоры). Оба варианта позволяют увеличивать или уменьшать масштаб в зависимости от требований к вычислительным ресурсам и хранилищу. Независимо от того, какую модель вы выберете, настройка производительности может сэкономить вам деньги при использовании базы данных SQL.

DTU

vCore

  • Объединенное измерение вычислительного хранилища и ввода-вывода в одном измерении стоимости

  • Простая модель с предварительно настроенными параметрами

  • Уровни производительности представляют собой комбинацию DTU и хранилища

  • Независимое масштабирование вычислений, хранения и ввода-вывода

  • Гибкость, контролируемость, прозрачность

  • Используйте с Azure Hybrid Benefit для SQL Server, чтобы сэкономить средства, что позволит вам использовать локальные лицензии

DTU измеряет «смешанную меру ввода-вывода ЦП, памяти и данных и ввода-вывода журнала транзакций», которую Microsoft использует для оценки того, какой уровень обслуживания на основе DTU следует использовать. Сокращая потребление ресурсов ввода-вывода, памяти или ЦП, вы используете меньше DTU или ядер и, таким образом, можете снизить уровни обслуживания. Отказ от услуг помогает сэкономить деньги.

Выход из уровня на портале - это просто переход к конфигурации базы данных SQL, выбор более низкого уровня и нажатие кнопки Apply.

 

В уведомлениях в правой части вы увидите, что выполняется масштабирование без простоев.

 

Перечни задач автоматизации Azure

Это все относительно сокращения ресурсов, которые вы потребляете. Как и базы данных On-Prem, базы данных Azure нуждаются в настройке производительности. Однако, в отличие от большинства сред On-Prem, Azure позволяет легко сокращать ресурсы обработки БД SQL без простоев. Кроме того, это позволяет вам экономить тысячи долларов в месяц.

Например, рассмотрим общий сценарий, который мы все видели. В большинстве сред есть некоторый тип процесса ETL, который загружает данные в базу данных, используемую для отчетов. В большинстве этих случаев это может быть ресурсоемким процессом, требующим очень высокого уровня обслуживания DTU для выполнения этой потенциально периодической загрузки данных. Что, если бы вы могли масштабировать свою среду до более высокого уровня обслуживания DTU, чтобы удовлетворить эту нагрузку, а затем уменьшать ее, когда она не нужна? Представьте, сколько денег вы могли бы спасти компании. В одной компании смогли внедрить такой процесс, так что ее ежемесячный счет Azure SQLDB упал с 55 тыс. долларов в месяц до 21 тыс. долларов. Это астрономическая экономия (обратите внимание, это очень большая среда).

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

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

Если масштабирование в зависимости от рабочей нагрузки не соответствует вашей среде, и вы все еще ищете способы сэкономить, начните настройку индекса. Начать проще всего с просмотра самых тяжелых запросов на потребление ввода-вывода, и вы можете использовать их, чтобы определить их. Цель - уменьшить количество операций чтения. Чем меньше у вас считываний, тем меньше ввод-вывод и потребление памяти, и тем меньше вам нужен уровень обслуживания DTU. Это хорошо для мониторинга каждой базы данных SQL Azure, но для понимания всего вашего имущества, как в облаке, так и локально, необходим такой инструмент, как SQL Monitor.

Автоматическая настройка

Если настройка индекса - это не то, что вам нужно, база данных SQL Azure включает параметр автоматической настройки, который вы можете включить, и он создаст индексы (и, возможно, удалит вновь созданные, недостаточно используемые индексы) для вас. Давайте углубимся в это.

 

Управление индексами является важной частью работы администраторов баз данных, будь то в Azure или локально. Индексы предоставляют важный способ настройки производительности запросов, поэтому правильное выполнение может занять много времени. Microsoft долго давала нам инструменты и предложения DBA, чтобы помочь настроить базы данных, исправить запросы с индексами, и много раз они имели сомнительную ценность. Мы все видели страшные имена dta_index в базе данных и закатывали глаза, зная, что иногда эти индексы не являются необходимыми или создают дубликаты. Хотя советник по настройке базы данных со временем стал лучше, он все еще не является инструментом, который используют более опытные администраторы баз данных. Microsoft сделала большие шаги, чтобы помочь администраторам баз данных с производительностью, представив хранилище запросов в базе данных SQL Azure и в SQL Server 2016. Хранение запросов собирает информацию о выполнении и производительности во время выполнения, включая регрессии планов. Microsoft сделала дополнительный шаг с введением Automatic Tuning. Automatic Tuning - это интеллектуальная служба настройки производительности, которая является результатом процессов машинного обучения, применяемых непосредственно к данным, сгенерированным Query Store.

Благодаря непрерывному мониторингу запросов, автоматическая настройка может быстро и разумно улучшить их производительность. Поскольку он основан на машинном обучении, он адаптируется к изменяющимся рабочим нагрузкам и поэтому лучше справляется с рекомендациями по индексам, чем ранее. Вы можете включить его для создания индексов, удаления индексов и принудительного выполнения последнего удачного плана на уровне базы данных (эта функция доступна в SQL Server 2017), поэтому она не является функцией «все или ничего». Вы можете настроить создание индекса или корректировку плана, чтобы вручную применять рекомендации с помощью портала, и это отличная возможность. По мнению Microsoft, автоматическое внесение изменений выгодно. Они заявляют: «Преимущества предоставления системе возможности самостоятельно применять рекомендации по настройке для вас состоят в том, что в этом случае она автоматически проверяет наличие положительного прироста производительности рабочей нагрузки, или в противном случае, если обнаружена регрессия, она автоматически отменит рекомендацию по настройке». При ручном применении предложений механизм разворота недоступен.

Чтобы включить автоматическую настройку:

  1. Войдите на портал Azure

  2. Перейдите в базу SQL Database и нажмите на нее

  3. В меню слева выберите Choose Automatic Tuning.

 

Здесь вы можете включать и выключать каждую опцию отдельно.

Параметры автоматической настройки, доступные в базе данных SQL Azure:

Параметр

Описание

CREATE INDEX 

Определяет индексы, которые могут улучшить производительность вашей рабочей нагрузки, создает индексы и автоматически проверяет, что производительность запросов повысилась

DROP INDEX 

Ежедневно идентифицирует избыточные и повторяющиеся индексы, за исключением уникальных индексов и индексов, которые не использовались в течение длительного времени (> 90 дней).

FORCE LAST GOOD PLAN 

Идентифицирует запросы SQL с использованием плана выполнения, который медленнее, чем предыдущий хороший план, и запросов с использованием последнего известного хорошего плана вместо плана, вызывающего регрессию.

Если вы решите не использовать графический интерфейс, вы также можете включить его с помощью T-SQL.

ALTER DATABASE current SET AUTOMATIC_TUNING = AUTO | INHERIT | CUSTOM

ALTER DATABASE current SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = DEFAULT, DROP_INDEX = OFF)

Флаг force_last_good_plan будет работать и в SQL Server 2017.

Когда вы решите включить DROP INDEX и APPLY, это напомнит вам о следующем.

 

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

   

Рекомендации иногда не применяются сразу, так как Azure следит за тем, чтобы они не мешали рабочей нагрузке и могли их сдерживать. Опять же, Microsoft делает все возможное, чтобы улучшить свои процессы. Вы увидите несколько «статусов» рекомендаций, показанных в таблице ниже из MSDN. Это большая победа для многих.

Статус

Описание

Pending

Команда Apply recommendation получена и запланирована к выполнению.

Executing

Рекомендация применяется.

Verifying

Рекомендация была успешно применена, и сервис измеряет преимущества.

Success

Рекомендация была успешно применена, и преимущества были измерены.

Error

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

Reverting

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

Reverted

Рекомендация была отменена.

 

Заключение

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

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

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

No Comments

Add a Comment