Ускорение и настройка производительности
Понимание возможностей ускорения и настройки производительности для SQL Azure является ключевым фактором для обеспечения согласованной производительности. Сюда входит понимание того, как масштабировать ресурсы ЦП, увеличивать производительность ввода-вывода, настраивать память и рабочие роли, сокращать задержку приложений и применять стандартные рекомендации по настройке SQL Server.
Масштабирование емкости ЦП
Возможно, вам потребуется масштабировать число процессоров, чтобы удовлетворить потребности в ресурсах. Для локальной среды это требует перенастройки виртуальной машины, изменения оборудования и даже переноса базы данных. SQL Azure позволяет выполнять это без миграции с вашей стороны. Вы можете использовать портал, T-SQL, Azure CLI или REST API, чтобы масштабировать число виртуальных ядер для развертывания.
Как правило, простоя не избежать, но для базы данных SQL Azure он может быть очень недолгим, когда не нужна миграция. Развертывания с гипермасштабированием позволяют выполнять постоянное масштабирование, независимо от объема данных, а бессерверные развертывания допускают автоматическое масштабирование на основе требований к ресурсам ЦП.
Примечание.
Управляемый экземпляр SQL Azure масштабирование может занять значительное время, но не требует миграции.
Производительность ввода-вывода
Производительность операций ввода-вывода может быть очень важна для приложения базы данных. SQL Azure абстрагирует вас от физического размещения файлов, но есть методы, позволяющие получить необходимую производительность ввода-вывода.
Число операций ввода-вывода в секунду для приложения может быть важным. Убедитесь, что вы выбрали правильный уровень служб и виртуальные ядра для ваших потребностей в операций ввода-вывода в секунду. Узнайте, как измерять операции ввода-вывода в секунду для запросов в локальной среде, если выполняется миграция в Azure. Если у вас есть ограничения на число операций ввода-вывода в секунду, вы можете столкнуться с длительными ожиданиями. В модели приобретения виртуальных ядер можно увеличить масштаб виртуальных ядер или перейти к критически важный для бизнеса или гипермасштабированию, если у вас недостаточно операций ввода-вывода в секунду. Для рабочих нагрузок при использовании DTU рекомендуется перейти на уровень "Премиум".
Задержка ввода-вывода — это еще один ключевой компонент производительности ввода-вывода. Для сокращения задержки операций ввода-вывода для базы данных SQL Azure рассмотрите переход на уровни "Критически важный для бизнеса" или "Гипермасштабирование". Для сокращения задержки ввода-вывода в Управляемом экземпляре SQL перейдите на уровень "Критически важный для бизнеса" или увеличьте размер файла или число файлов для базы данных. Для улучшения задержки в журнале транзакций может потребоваться использовать транзакции с несколькими статистиками.
Увеличение объема памяти или числа рабочих ролей
Вашему приложению или развертыванию может требоваться определенный объем памяти или количество рабочих ролей. Для базы данных SQL Azure увеличьте число виртуальных ядер, чтобы повысить пределы памяти или рабочих ролей. Для Управляемого экземпляра SQL увеличьте число виртуальных ядер, чтобы повысить пределы памяти. В настоящее время Управляемый экземпляр SQL также поддерживает увеличение числа рабочих ролей с помощью "max worker threads".
Улучшение задержки приложений
Даже если вы настроили развертывание для удовлетворения всех своих потребностей в ресурсах, приложения могут вызвать проблемы с производительностью из-за задержки. Обязательно используйте следующие рекомендации по работе с приложениями SQL Azure.
- Используйте тип соединения с перенаправлением вместо прокси.
- Оптимизируйте приложения, требующие частого обмена данными, с помощью хранимых процедур или ограничьте количество циклов обработки запросов с помощью таких методов, как пакеты.
- Оптимизируйте транзакции, группируя их, вместо использования отдельных транзакций.
Настройка по образцу SQL Server
SQL Azure по-прежнему является SQL Server. Почти ничто не сможет заменить настройку запросов SQL Server и обращение внимания на следующее:
- правильность структуры индексирования;
- использование пакетов;
- использование хранимых процедур;
- Параметризация запросов, чтобы избежать слишком большого количества кэшированных нерегламентированных запросов
- Обработка результатов в приложении быстро и правильно
В следующем упражнении вы получите проблему производительности из первого упражнения и улучшите ее путем масштабирования ЦП для SQL Azure.