Långsamma frågeloggar i Azure Database for MySQL – flexibel server
GÄLLER FÖR: Azure Database for MySQL – flexibel server
I Azure Database for MySQL – flexibel server är den långsamma frågeloggen tillgänglig för användare att konfigurera och komma åt. Långsamma frågeloggar är inaktiverade som standard och kan aktiveras för att identifiera flaskhalsar i prestanda under felsökningen.
Mer information om loggen för långsam MySQL-fråga finns i avsnittet långsam frågelogg i dokumentationen för MySQL-motorn.
Konfigurera långsam frågeloggning
Som standard är loggen för långsamma frågor inaktiverad. Om du vill aktivera loggar ställer du in slow_query_log
serverparametern på PÅ. Detta kan konfigureras med hjälp av Azure-portalen eller Azure CLI.
Andra parametrar som du kan justera för att kontrollera långsamma frågeloggningsbeteenden är:
- long_query_time: logga en fråga om det tar längre tid än
long_query_time
(i sekunder) att slutföra. Standardvärdet är 10 sekunder. Serverparameternlong_query_time
gäller globalt för alla nyligen etablerade anslutningar i MySQL. Det påverkar dock inte trådar som redan är anslutna. Vi rekommenderar att du återansluter till en flexibel Azure Database for MySQL-server från programmet, eller att starta om servern hjälper dig att rensa trådar med äldre värden för "long_query_time" och tillämpa det uppdaterade parametervärdet. - log_slow_admin_statements: avgör om administrativa instruktioner (till exempel
ALTER_TABLE
,ANALYZE_TABLE
) loggas. - log_queries_not_using_indexes: avgör om frågor som inte använder index loggas.
- log_throttle_queries_not_using_indexes: begränsar antalet icke-indexerade frågor som kan skrivas till den långsamma frågeloggen. Den här parametern börjar gälla när
log_queries_not_using_indexes
den är inställd på PÅ
Viktigt!
Om dina tabeller inte indexeras kan inställningen log_queries_not_using_indexes
och log_throttle_queries_not_using_indexes
till PÅ påverka MySQL-prestanda eftersom alla frågor som körs mot dessa icke-indexerade tabeller skrivs till den långsamma frågeloggen.
Se dokumentationen för den långsamma frågeloggen i MySQL för fullständiga beskrivningar av de långsamma frågeloggparametrarna.
Komma åt loggar för långsamma frågor
Långsamma frågeloggar är integrerade med Diagnostikinställningar för Azure Monitor. När du har aktiverat långsamma frågeloggar på din flexibla Azure Database for MySQL-serverinstans kan du skicka dem till Azure Monitor-loggar, Event Hubs eller Azure Storage. Mer information om diagnostikinställningar finns i dokumentationen för diagnostikloggar. Mer information om hur du aktiverar diagnostikinställningar i Azure-portalen finns i artikeln om loggportalen för långsamma frågor.
Kommentar
Premium Storage-konton stöds inte om du skickar loggarna till Azure Storage via diagnostik och inställningar.
I följande tabell beskrivs utdata från loggen för långsamma frågor. Beroende på utdatametoden kan fälten som ingår och i vilken ordning de visas variera.
Property | Beskrivning |
---|---|
TenantId |
Ditt klientorganisations-ID |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Tidsstämpel när loggen registrerades i UTC |
Type |
Typ av logg. Alltid AzureDiagnostics |
SubscriptionId |
GUID för den prenumeration som servern tillhör |
ResourceGroup |
Namnet på resursgruppen som servern tillhör |
ResourceProvider |
Namnet på resursprovidern. Alltid MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
Resurs-URI |
Resource |
Namnet på servern |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
Namnet på servern |
start_time_t [UTC] |
Tid då frågan började |
query_time_s |
Total tid i sekunder som frågan tog att köra |
lock_time_s |
Total tid i sekunder som frågan låstes |
user_host_s |
Username |
rows_sent_s |
Antal rader som skickats |
rows_examined_s |
Antal undersökta rader |
last_insert_id_s |
last_insert_id |
insert_id_s |
Infoga ID |
sql_text_s |
Fullständig fråga |
server_id_s |
Serverns ID |
thread_id_s |
Tråd-ID |
\_ResourceId |
Resurs-URI |
Kommentar
För sql_text_s
trunkeras loggen om den överskrider 2 048 tecken.
Analysera loggar i Azure Monitor-loggar
När dina långsamma frågeloggar skickas till Azure Monitor-loggar via diagnostikloggar kan du utföra ytterligare analys av dina långsamma frågor. Nedan visas några exempelfrågor som hjälper dig att komma igång. Se till att uppdatera nedanstående med servernamnet.
Frågor som är längre än 10 sekunder på en viss server
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
Lista de 5 längsta frågorna på en viss server
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
Sammanfatta långsamma frågor efter minsta, högsta, genomsnittliga och standardavvikelsefrågetid på en viss server
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
Diagram över den långsamma frågedistributionen på en viss server
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
Visa frågor som är längre än 10 sekunder i alla azure database for MySQL-instanser för flexibel server med diagnostikloggar aktiverade
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
Nästa steg
- Läs mer om granskningsloggar
- Information om frågeprestanda