Protokoly pomalých dotazů na flexibilním serveru Azure Database for MySQL
PLATÍ PRO: Flexibilní server Azure Database for MySQL
Na flexibilním serveru Azure Database for MySQL je protokol pomalých dotazů dostupný uživatelům, kteří můžou konfigurovat a přistupovat k němu. Protokoly pomalých dotazů jsou ve výchozím nastavení zakázané a dají se povolit, aby vám pomohly s identifikací kritických bodů výkonu během řešení potíží.
Další informace o protokolu pomalých dotazů MySQL najdete v části protokol pomalých dotazů v dokumentaci k modulu MySQL.
Konfigurace protokolování pomalých dotazů
Ve výchozím nastavení je protokol pomalých dotazů zakázaný. Pokud chcete povolit protokoly, nastavte slow_query_log
parametr serveru na ZAPNUTO. Můžete ho nakonfigurovat pomocí webu Azure Portal nebo Azure CLI.
Mezi další parametry, které můžete upravit pro řízení chování protokolování pomalých dotazů, patří:
- long_query_time: Zapište dotaz, pokud dokončení trvá déle než
long_query_time
(v sekundách). Výchozí hodnota je 10 sekund. Parametrlong_query_time
serveru se globálně vztahuje na všechna nově vytvořená připojení v MySQL. Nemá ale vliv na vlákna, která jsou již připojena. Doporučujeme se z aplikace znovu připojit k flexibilnímu serveru Azure Database for MySQL nebo restartovat server pomůže vymazat vlákna se staršími hodnotami long_query_time a použít aktualizovanou hodnotu parametru. - log_slow_admin_statements: určuje, zda jsou zaznamenány správní prohlášení (např
ALTER_TABLE
. ,ANALYZE_TABLE
). - log_queries_not_using_indexes: Určuje, jestli jsou zaprotokolovány dotazy, které nepoužívají indexy.
- log_throttle_queries_not_using_indexes: Omezuje počet neindexovaných dotazů, které je možné zapsat do protokolu pomalých dotazů. Tento parametr se projeví, když
log_queries_not_using_indexes
je nastavený na ZAPNUTO.
Důležité
Pokud vaše tabulky nejsou indexované, nastavení log_queries_not_using_indexes
parametrů na log_throttle_queries_not_using_indexes
hodnotu ON může ovlivnit výkon MySQL, protože všechny dotazy spuštěné s těmito neindexovanými tabulkami se zapíšou do protokolu pomalých dotazů.
Úplný popis parametrů protokolu pomalých dotazů najdete v dokumentaci k protokolu pomalých dotazů MySQL.
Přístup k protokolům pomalých dotazů
Protokoly pomalých dotazů jsou integrované s nastavením diagnostiky služby Azure Monitor. Jakmile povolíte protokoly pomalých dotazů na instanci flexibilního serveru Azure Database for MySQL, můžete je generovat do protokolů služby Azure Monitor, služby Event Hubs nebo Azure Storage. Další informace o nastavení diagnostiky najdete v dokumentaci k diagnostickým protokolům. Další informace o povolení nastavení diagnostiky na webu Azure Portal najdete v článku o portálu protokolu pomalých dotazů.
Poznámka:
Účty Premium Storage se nepodporují, pokud odesíláte protokoly do úložiště Azure prostřednictvím diagnostiky a nastavení.
Následující tabulka popisuje výstup protokolu pomalých dotazů. V závislosti na výstupní metodě se pole zahrnutá a pořadí, ve kterém se zobrazují, se mohou lišit.
Vlastnost | Popis |
---|---|
TenantId |
ID vašeho tenanta |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Časové razítko, kdy se protokol zaznamenal v UTC |
Type |
Typ protokolu Vždy AzureDiagnostics |
SubscriptionId |
IDENTIFIKÁTOR GUID předplatného, ke kterému server patří |
ResourceGroup |
Název skupiny prostředků, do které server patří |
ResourceProvider |
Název poskytovatele prostředků Vždy MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
Adresa URI zdroje |
Resource |
Název serveru |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
Název serveru |
start_time_t [UTC] |
Čas zahájení dotazu |
query_time_s |
Celková doba v sekundách, po které trvalo provedení dotazu |
lock_time_s |
Celkový čas v sekundách, kdy byl dotaz uzamčen |
user_host_s |
Username |
rows_sent_s |
Počet odeslaných řádků |
rows_examined_s |
Počet vyšetřených řádků |
last_insert_id_s |
last_insert_id |
insert_id_s |
Vložit ID |
sql_text_s |
Úplný dotaz |
server_id_s |
ID serveru |
thread_id_s |
ID vlákna |
\_ResourceId |
Adresa URI zdroje |
Poznámka:
Protokol sql_text_s
bude zkrácen, pokud přesahuje 2048 znaků.
Analýza protokolů v protokolech služby Azure Monitor
Jakmile se protokoly pomalých dotazů předávají do protokolů služby Azure Monitor prostřednictvím diagnostických protokolů, můžete provést další analýzu pomalých dotazů. Níže najdete několik ukázkových dotazů, které vám pomůžou začít. Nezapomeňte aktualizovat následující název serveru.
Dotazy delší než 10 sekund na konkrétním serveru
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
Seznam 5 nejdelších dotazů na konkrétním serveru
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
Shrnutí pomalých dotazů podle minimálního, maximálního, průměrného a směrodatné odchylky doby dotazu na konkrétním serveru
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
Graf pomalé distribuce dotazů na konkrétním serveru
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
Zobrazení dotazů delších než 10 sekund ve všech instancích flexibilního serveru Azure Database for MySQL s povolenými diagnostickými protokoly
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
Další kroky
- Další informace o protokolech auditu
- Query Performance Insight