Журналы медленных запросов в База данных Azure для MySQL — гибкий сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — гибкий сервер
В База данных Azure для MySQL гибком сервере журнал медленных запросов доступен пользователям для настройки и доступа. Журналы медленных запросов по умолчанию отключены и могут быть включены для выявления узких мест производительности во время устранения неполадок.
Дополнительные сведения о журнале медленных запросов MySQL см. в разделе о журналах медленных запросов справочного руководства по MySQL.
Настройка ведения журнала медленных запросов
Журнал медленных запросов по умолчанию отключен. Чтобы включить эти журналы, установите для параметра сервера slow_query_log
значение ВКЛ. Это можно настроить с помощью портал Azure или Azure CLI.
Другие параметры, которые можно настроить для управления ведением журналов медленных запросов:
- long_query_time: регистрирует запрос, если время его выполнения превышает
long_query_time
(в секундах). Значение по умолчанию — 10 секунд. Параметрlong_query_time
сервера применяется глобально ко всем новым установленным подключениям в MySQL. Однако это не влияет на потоки, которые уже подключены. Рекомендуется повторно подключиться к База данных Azure для MySQL гибкому серверу из приложения или перезапустить сервер, чтобы очистить потоки со старыми значениями "long_query_time" и применить обновленное значение параметра. - log_slow_admin_statements: определяет, регистрируются ли в журнале инструкции администрирования (например,
ALTER_TABLE
,ANALYZE_TABLE
). - log_queries_not_using_indexes: определяет, регистрируются ли запросы, не использующие индексы.
- log_throttle_queries_not_using_indexes: ограничивает число запросов, не использующих индексы, регистрируемых в журнале медленных запросов. Этот параметр вступает в силу, если для
log_queries_not_using_indexes
установлено значение ВКЛ.
Внимание
Если таблицы не индексированы, установка для параметров log_queries_not_using_indexes
и log_throttle_queries_not_using_indexes
значения ВКЛ. может повлиять на производительность MySQL, так как все запросы к этим неиндексированным таблицам будут регистрироваться в журнале медленных запросов.
Полное описание параметров, применимых для журнала медленных запросов, вы найдете в соответствующем разделе документации по MySQL.
Доступ к журналам медленных запросов
Журналы медленных запросов можно интегрировать с настройками диагностики Azure Monitor. После включения журналов медленных запросов на База данных Azure для MySQL гибком экземпляре сервера можно отправлять их в журналы Azure Monitor, центры событий или служба хранилища Azure. Дополнительные сведения о настройках диагностики см. в документации к журналам диагностики. Дополнительные сведения о включении настроек диагностики на портале Azure см. в статье о журналах медленных запросов на портале.
Примечание.
Учетные записи хранилища класса Premium не поддерживаются при отправке журналов в службу хранилища Azure с помощью диагностики и параметров.
В следующей таблице описаны выходные данные журнала медленных запросов. Порядок появления выбранных полей зависит от выбранного метода вывода.
Свойство | Description |
---|---|
TenantId |
Идентификатор клиента |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Метка времени, когда журнал был записан в формате UTC |
Type |
Тип журнала Всегда AzureDiagnostics |
SubscriptionId |
Идентификатор GUID для подписки, принадлежащей серверу |
ResourceGroup |
Имя группы ресурсов, принадлежащей серверу |
ResourceProvider |
Имя поставщика ресурсов. Всегда MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
Универсальный код ресурса (URI) |
Resource |
Имя сервера |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
Имя сервера |
start_time_t [UTC] |
Время начала запроса. |
query_time_s |
Общее время, в секундах, которое потребовалось для выполнения запроса |
lock_time_s |
Общее время, в секундах, блокировки запроса |
user_host_s |
Username |
rows_sent_s |
Количество отправленных строк. |
rows_examined_s |
Число проверенных строк. |
last_insert_id_s |
last_insert_id |
insert_id_s |
Идентификатор для вставки |
sql_text_s |
Полный запрос. |
server_id_s |
Идентификатор сервера |
thread_id_s |
Идентификатор потока |
\_ResourceId |
Универсальный код ресурса (URI) |
Примечание.
Для sql_text_s
журнал будет обрезан, если его длина превышает 2048 символов.
Анализ журналов в журналах Azure Monitor
Перенаправив журналы медленных запросов в журналы Azure Monitor с помощью журналов диагностики, можно выполнить дальнейший анализ медленных запросов. Ниже приведены примеры запросов, которые помогут приступить к работе. Обязательно замените указанные ниже имена серверов именем своего сервера.
Запросы, выполнявшиеся дольше 10 секунд на конкретном сервере
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
Список 5 запросов, дольше всего выполнявшихся на конкретном сервере
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5
Сводка медленных запросов по минимальному, максимальному, среднему и стандартному отклонению времени выполнения запроса на конкретном сервере
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by Resource
График распределения медленных запросов на конкретном сервере
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by Resource , bin(TimeGenerated, 5m) | render timechart
Отображение запросов дольше 10 секунд во всех База данных Azure для MySQL гибких экземплярах сервера с включенными журналами диагностики
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
Следующие шаги
- Дополнительные сведения о журналах аудита
- Анализ производительности запросов