Lassú lekérdezési naplók az Azure Database for MySQL-ben – rugalmas kiszolgáló

A következőkre vonatkozik: Azure Database for MySQL – rugalmas kiszolgáló

A rugalmas Azure Database for MySQL-kiszolgálón a lassú lekérdezési napló konfigurálható és elérhető a felhasználók számára. A lassú lekérdezési naplók alapértelmezés szerint le vannak tiltva, és lehetővé teszik a teljesítmény szűk keresztmetszeteinek azonosítását a hibaelhárítás során.

A MySQL lassú lekérdezési naplójáról további információt a MySQL-motor dokumentációjának lassú lekérdezési napló szakaszában talál.

Lassú lekérdezésnaplózás konfigurálása

Alapértelmezés szerint a lassú lekérdezési napló le van tiltva. A naplók engedélyezéséhez állítsa a kiszolgáló paraméterét slow_query_log ON értékre. Ez az Azure Portal vagy az Azure CLI használatával konfigurálható.

A lassú lekérdezésnaplózási viselkedés szabályozásához a következő paramétereket állíthatja be:

  • long_query_time: naplózza a lekérdezést, ha a művelet végrehajtása (másodpercben) több időt long_query_time vesz igénybe. Az alapértelmezett érték 10 másodperc. A kiszolgálóparaméter long_query_time globálisan érvényes a MySQL összes újonnan létrehozott kapcsolatára. Ez azonban nem befolyásolja a már csatlakoztatott szálakat. Javasoljuk, hogy csatlakozzon újra a rugalmas Azure Database for MySQL-kiszolgálóhoz az alkalmazásból, vagy a kiszolgáló újraindítása segít törölni a régebbi "long_query_time" értékekkel rendelkező szálakat, és alkalmazza a frissített paraméterértéket.
  • log_slow_admin_statements: meghatározza, hogy a rendszer naplózza-e a felügyeleti utasításokat (pl. ALTER_TABLE, ANALYZE_TABLE).
  • log_queries_not_using_indexes: meghatározza, hogy az indexeket nem használó lekérdezések naplózva vannak-e.
  • log_throttle_queries_not_using_indexes: korlátozza a lassú lekérdezési naplóba írható nem indexelt lekérdezések számát. Ez a paraméter akkor lép érvénybe, ha log_queries_not_using_indexes be van kapcsolva

Fontos

Ha a táblák nincsenek indexelve, a paraméterek on log_throttle_queries_not_using_indexes értékre állítása hatással lehet a log_queries_not_using_indexes MySQL teljesítményére, mivel a nem indexelt táblákon futó összes lekérdezést a rendszer a lassú lekérdezési naplóba írja.

A lassú lekérdezési napló paramétereinek teljes leírását a MySQL lassú lekérdezési naplójának dokumentációjában találja.

Access slow query logs

A lassú lekérdezési naplók integrálva vannak az Azure Monitor diagnosztikai beállításaival. Miután engedélyezte a lassú lekérdezési naplókat a rugalmas Azure Database for MySQL-kiszolgálópéldányon, kibocsáthatja őket az Azure Monitor-naplókba, az Event Hubsba vagy az Azure Storage-ba. A diagnosztikai beállításokról további információt a diagnosztikai naplók dokumentációjában talál. A diagnosztikai beállítások Azure Portalon való engedélyezésével kapcsolatos további információkért tekintse meg a lassú lekérdezési napló portáljának cikkét.

Megjegyzés:

A Premium Storage-fiókok nem támogatottak, ha diagnosztikával és beállításokkal küldi el a naplókat az Azure Storage-ba.

Az alábbi táblázat a lassú lekérdezési napló kimenetét ismerteti. A kimeneti módszertől függően a benne foglalt mezők és azok megjelenési sorrendje eltérő lehet.

Property Ismertetés
TenantId A bérlő azonosítója
SourceSystem Azure
TimeGenerated [UTC] Időbélyeg, amikor a naplót UTC-ben rögzítették
Type A napló típusa. Mindig AzureDiagnostics
SubscriptionId ANNAK az előfizetésnek a GUID azonosítója, amelyhez a kiszolgáló tartozik
ResourceGroup Annak az erőforráscsoportnak a neve, amelyhez a kiszolgáló tartozik
ResourceProvider Az erőforrás-szolgáltató neve. Mindig MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Erőforrás URI-ja
Resource A kiszolgáló neve
Category MySqlSlowLogs
OperationName LogEvent
Logical_server_name_s A kiszolgáló neve
start_time_t [UTC] A lekérdezés kezdetének időpontja
query_time_s A lekérdezés végrehajtásának teljes időtartama másodpercben
lock_time_s A lekérdezés zárolt teljes időtartama másodpercben
user_host_s Username
rows_sent_s Elküldött sorok száma
rows_examined_s A vizsgált sorok száma
last_insert_id_s last_insert_id
insert_id_s Azonosító beszúrása
sql_text_s Teljes lekérdezés
server_id_s A kiszolgáló azonosítója
thread_id_s Szálazonosító
\_ResourceId Erőforrás URI-ja

Megjegyzés:

Ebben sql_text_saz esetben a rendszer csonkolja a naplót, ha az meghaladja a 2048 karaktert.

Naplók elemzése az Azure Monitor-naplókban

Miután a lassú lekérdezési naplókat diagnosztikai naplókon keresztül az Azure Monitor-naplókba csövezték, további elemzéseket végezhet a lassú lekérdezésekről. Az alábbiakban néhány minta lekérdezést talál, amelyek segítenek az első lépésekben. Frissítse az alábbiakat a kiszolgáló nevével.

  • 10 másodpercnél hosszabb lekérdezések egy adott kiszolgálón

    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
    
  • Az 5 leghosszabb lekérdezés listázása egy adott kiszolgálón

    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
    
  • Lassú lekérdezések összegzése minimális, maximális, átlagos és szórásos lekérdezési idő szerint egy adott kiszolgálón

    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 
    
  • A lassú lekérdezések eloszlásának grafikonja egy adott kiszolgálón

    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 másodpercnél hosszabb lekérdezések megjelenítése az összes rugalmas Azure Database for MySQL-kiszolgálópéldányon a diagnosztikai naplók engedélyezésével

    AzureDiagnostics
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s
    | where query_time_d > 10
    

További lépések