Устранение проблем с производительностью Базы данных SQL Azure и Управляемого экземпляра SQL Azure с помощью журнала диагностики производительности Intelligent Insights
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
В этой статье содержатся сведения об использовании журнала диагностики производительности, который создается в Intelligent Insights, для устранения проблем с производительностью Базы данных SQL Azure и Управляемого экземпляра SQL Azure. Здесь также описан формат этого журнала диагностики и содержащиеся в нем данные, которые будут полезны разработчикам. Этот журнал диагностики можно отправить в журналы Azure Monitor, Центры событий Azure, службу хранилища Azure или стороннее решение для разработки настраиваемых функций оповещения и отчетности в соответствии с процедурами DevOps.
Примечание.
Intelligent Insights — это предварительная версия функции, недоступная в следующих регионах: Западная Европа, Северная Европа, западная часть США 1 и восточная часть США 1.
Заголовок журнала
Журнал диагностики использует стандартный формат JSON для вывода результатов Intelligent Insights. Точное свойство категории для доступа к журналу Intelligent Insights — это фиксированное значение SQLInsights, не связанное с Мониторингом базы данных SQL Azure с помощью Azure Monitor SQL Insights (предварительная версия).
Заголовок журнала является типичным и состоит из метки времени (TimeGenerated), которая показывает, когда была создана запись. Он также включает ИД ресурса (ResourceId), который относится к конкретной базе данных, с которой связана запись. Категория (Category), уровень (Level) и имя операции (OperationName) являются фиксированными свойствами, значения которых не изменяются. Они указывают, что запись журнала является информационной и что она сгенерирована в Intelligent Insights (SQLInsights).
"TimeGenerated" : "2017-9-25 11:00:00", // time stamp of the log entry
"ResourceId" : "database identifier", // value points to a database resource
"Category": "SQLInsights", // fixed property
"Level" : "Informational", // fixed property
"OperationName" : "Insight", // fixed property
Идентификатор проблемы и затронутая база данных
Свойства идентификации проблемы (issueId_d) позволяет однозначно отслеживать проблемы с производительностью вплоть до их устранения. Несколько записей событий в журнале, указывающие статус одной и той же проблемы, будут иметь одинаковый идентификатор проблемы.
Помимо идентификатора проблемы в журнал диагностики записываются метки времени начала (intervalStartTime_t) и окончания (intervalEndTme_t) определенного события, связанного с проблемой.
Свойство эластичного пула (elasticPoolName_s) указывает, какому эластичному пулу принадлежит база данных, в которой обнаружена проблема. Если база данных не является частью эластичного пула, этому свойству значение не присваивается. База данных, в которой выявлена проблема, указывается в свойстве имени базы данных (databaseName_s).
"intervalStartTime_t": "2017-9-25 11:00", // start of the issue reported time stamp
"intervalEndTme_t":"2017-9-25 12:00", // end of the issue reported time stamp
"elasticPoolName_s" : "", // resource elastic pool (if applicable)
"databaseName_s" : "db_name", // database name
"issueId_d" : 1525, // unique ID of the issue detected
"status_s" : "Active" // status of the issue – possible values: "Active", "Verifying", and "Complete"
Обнаруженные проблемы
Следующий раздел журнала производительности Intelligent Insights содержит проблемы с производительностью, выявленные с помощью встроенного искусственного интеллекта. Выявленные данные указываются в свойствах журнала диагностики формата JSON. Эти обнаружения состоят из категории проблемы, её влияния, затронутых запросов и метрик. Свойства обнаружений могут содержать несколько выявленных проблем с производительностью.
Выявленные проблемы с производительностью отображаются посредством следующей структуры свойства обнаружений.
"detections_s" : [{
"impact" : 1 to 3, // impact of the issue detected, possible values 1-3 (1 low, 2 moderate, 3 high impact)
"category" : "Detectable performance pattern", // performance issue detected, see the table
"details": <Details outputted> // details of an issue (see the table)
}]
В следующей таблице приведены выявляемые шаблоны снижения производительности и сведения, выводимые в журнал диагностики.
Категория выявленной проблемы
Свойство категории (category) описывает категорию выявляемых шаблонов производительности. В следующей таблице приведены все возможные категории выявляемых шаблонов снижения производительности. Дополнительные сведения см. в статье Устранение проблем с производительностью базы данных SQL Azure с помощью Intelligent Insights.
Сведения, выводимые в файл журнала диагностики, зависят от выявленной проблемы с производительностью.
Выявляемые шаблоны производительности | Выводимые сведения |
---|---|
достижение лимитов ресурсов; | |
Увеличение рабочей нагрузки | |
Нехватка памяти | |
Блокировка | |
Повышенное значение MAXDOP | |
Соперничество за блокировку страниц | |
Отсутствующий индекс | |
Новый запрос | |
Необычная статистика ожидания | |
tempdb Спор |
|
Нехватка пула эластичности DTU | |
Регрессия плана | |
Изменение значения конфигурации на уровне базы данных | |
Медленная работа клиента | |
Переход на более низкую ценовую категорию |
Воздействие
Свойство влияния (impact) описывает, насколько обнаруженное поведение способствовало проблеме, с которой сталкивается база данных. по шкале от 1 до 3, где 3 — это наибольшая подверженность, 2 — умеренная, а 1 — наименьшая. Значение воздействия может использоваться в качестве входных данных для автоматизации настраиваемых оповещений в зависимости от конкретных потребностей. Свойство затронутых запросов (QueryHashes) содержит список хэшей запросов, затронутых выявленной проблемой.
Затронутые запросы
Следующий раздел журнала Intelligent Insights содержит сведения о конкретных запросах, которые были затронуты выявленной проблемой с производительностью. Эти сведения предоставляются в виде массива объектов, внедренного в свойство impact_s. Свойство влияния состоит из сущностей и метрик. Сущности относятся к определенному запросу (Тип: Запрос). Уникальный хэш запроса указывается в свойстве значения (Value). Кроме того, каждый указанный запрос сопровождается метрикой и значением, которые описывают выявленную проблему с производительностью.
В следующем примере журнала было обнаружено, что время выполнения запроса с хэшем 0x9102EXZ4 увеличилось (Metric: DurationIncreaseSeconds). Значение 110 секунд означает, что этот запрос выполнялся на 110 секунд дольше. Так как могут быть выявлены несколько запросов, этот раздел журнала может содержать несколько записей о запросах.
"impact" : [{
"entity" : {
"Type" : "Query", // type of entity - query
"Value" : "query hash value", // for example "0x9102EXZ4" query hash value },
"Metric" : "DurationIncreaseSeconds", // measured metric and the measurement unit (in this case seconds)
"Value" : 110 // value of the measured metric (in this case seconds)
}]
Метрики
Единицы измерения каждой полученной метрики указываются в свойстве метрики (metric) с возможными значениями: секунды, число и процент. Значение измеряемой метрики указывается в свойстве значения (value).
Свойство DurationIncreaseSeconds предоставляет единицу измерения в секундах. а для CriticalErrorCount единицей измерения является число, представляющее собой количество ошибок.
"metric" : "DurationIncreaseSeconds", // issue metric type – possible values: DurationIncreaseSeconds, CriticalErrorCount, WaitingSeconds
"value" : 102 // value of the measured metric (in this case seconds)
Анализ первопричин и рекомендации по повышению производительности
Последняя часть журнала производительности Intelligent Insights содержит результат автоматического анализа первопричин выявленной проблемы снижения производительности. Эта информация отображается в понятном виде в свойстве анализа первопричин (rootCauseAnalysis_s). Везде, где это возможно, в журнале содержатся рекомендации по улучшению.
// example of reported root cause analysis of the detected performance issue, in a human-readable format
"rootCauseAnalysis_s" : "High data IO caused performance to degrade. It seems that this database is missing some indexes that could help."
Вы можете использовать журнал производительности Intelligent Insights с журналами Azure Monitor или сторонним решением для настройки функций оповещения и отчетности в DevOps.
Следующие шаги
- Ознакомьтесь с понятиями Intelligent Insights.
- Узнайте, как устранять проблемы с производительностью с помощью Intelligent Insights.
- Ознакомьтесь с мониторингом проблем с производительностью с помощью службы "Аналитика SQL Azure".
- Узнайте, как собирать и использовать данные журнала из ресурсов Azure.