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. Serverparametern long_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å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_strunkeras 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