Megosztás a következőn keresztül:


Lassú lekérdezési naplók az Azure Database for MySQL-ben

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

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Az Azure Database for MySQL-ben a lassú lekérdezési napló elérhető a felhasználók számára. A tranzakciónaplóhoz való hozzáférés nem támogatott. A lassú lekérdezési naplóval azonosíthatók a hibaelhárítási teljesítmény szűk keresztmetszetei.

A MySQL lassú lekérdezési naplójával kapcsolatos további információkért tekintse meg a MySQL-referencia-kézikönyv lassú lekérdezési naplójának szakaszát.

Ha a Lekérdezéstár engedélyezve van a kiszolgálón, előfordulhat, hogy a lassú lekérdezési naplókban a "CALL mysql.az_procedure_collect_wait_stats (900, 30);" típusú lekérdezések is megjelennek. Ez a viselkedés várható, mivel a Lekérdezéstár szolgáltatás statisztikákat gyűjt a lekérdezésekről.

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

Alapértelmezés szerint a lassú lekérdezési napló le van tiltva. Az engedélyezéshez állítsa slow_query_log BE értékre. Ez az Azure Portalon vagy az Azure CLI-vel engedélyezhető.

További módosítható paraméterek a következők:

  • long_query_time: ha egy lekérdezés long_query_time (másodpercben) hosszabb időt vesz igénybe, a lekérdezés naplózva lesz. Az alapértelmezett érték 10 másodperc.
  • log_slow_admin_statements: ha az ON olyan felügyeleti utasításokat tartalmaz, mint ALTER_TABLE és ANALYZE_TABLE a slow_query_log írt utasításokban.
  • log_queries_not_using_indexes: meghatározza, hogy az indexeket nem használó lekérdezések naplózva legyenek-e a slow_query_log
  • log_throttle_queries_not_using_indexes: Ez a paraméter 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 értékre van állítva.
  • log_output: ha "Fájl", lehetővé teszi a lassú lekérdezési naplók írását a helyi kiszolgáló tárolójába és az Azure Monitor diagnosztikai naplóiba. Ha „Nincs”, a lassú lekérdezési napló csak az Azure Monitor Diagnostics Logsban lesz rögzítve.

Fontos

Ha a táblák nincsenek indexelve, akkor a log_queries_not_using_indexes és a log_throttle_queries_not_using_indexes paraméter ON értékre állítása befolyásolhatja a MySQL teljesítményét, mivel a nem indexelt táblákon futó valamennyi lekérdezés a lassú lekérdezési naplóba kerül.

Ha hosszabb ideig tervezi a lassú lekérdezések naplózását, ajánlott a "Nincs" értékre állítani log_output . Ha "Fájl" értékre van állítva, ezek a naplók a helyi kiszolgáló tárolójába lesznek írva, és hatással lehetnek a MySQL teljesítményére.

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.

Hozzáférés lassú lekérdezési naplókhoz

A lassú lekérdezési naplók elérésének két lehetősége van az Azure Database for MySQL-ben: a helyi kiszolgálói tárolóban vagy az Azure Monitor diagnosztikai naplóiban. Ez a paraméterrel log_output van beállítva.

A helyi kiszolgálótárolók esetében lassú lekérdezési naplókat listázhat és tölthet le az Azure Portalon vagy az Azure CLI-vel. Keresse meg a kiszolgálót az Azure Portalon. A Figyelés fejléc alatt válassza a Kiszolgálónaplók lapot. Az Azure CLI-vel kapcsolatos további információért lásd a lassú lekérdezési naplók az Azure CLI használatával való konfigurálásáról és eléréséről szóló részt.

Az Azure Monitor diagnosztikai naplói lehetővé teszik, hogy lassú lekérdezési naplókat futtassunk az Azure Monitor-naplókba (Log Analytics), az Azure Storage-ba vagy az Event Hubsba. További információt alább talál.

Helyi kiszolgáló tárolási naplójának megőrzése

Amikor a kiszolgáló helyi tárolójába jelentkezik be, a naplók a létrehozásuktól számított hét napig érhetők el. Ha az elérhető naplók teljes mérete meghaladja a 7 GB-ot, a rendszer a legrégebbi fájlokat törli, amíg nincs szabad hely. A kiszolgálónaplók 7 GB-os tárterületkorlátja ingyenesen elérhető, és nem bővíthető.

A naplók 24 óránként vagy 7 GB-ként vannak elforgatva, attól függően, hogy melyik az első.

Feljegyzés

A fenti naplómegőrzés nem vonatkozik az Azure Monitor diagnosztikai naplók használatával vezetékes naplókra. Módosíthatja a kibocsátott adatgyűjtők megőrzési idejét (pl. Azure Storage).

Diagnosztikai naplók

Az Azure Database for MySQL integrálva van az Azure Monitor diagnosztikai naplóival. Miután engedélyezte a lassú lekérdezési naplókat a MySQL-kiszolgálón, kiválaszthatja, hogy kibocsátja őket az Azure Monitor-naplókba, az Event Hubsba vagy az Azure Storage-ba. A diagnosztikai naplók engedélyezéséről a diagnosztikai naplók dokumentációjának útmutatójában olvashat bővebben.

Feljegyzé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 az egyes naplókban található adatokat ismerteti. A kimeneti módszertől függően a benne foglalt mezők és azok megjelenési sorrendje eltérő lehet.

Tulajdonság Leírá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 Felhasználónév
rows_sent_d 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

Feljegyzés

Ebben sql_textaz 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 LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_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 LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_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 LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_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 LogicalServerName_s
    
  • A lassú lekérdezések eloszlásának grafikonja egy adott kiszolgálón

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, start_time_t , query_time_d, sql_text_s 
    | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
    | render timechart
    
  • 10 másodpercnél hosszabb lekérdezések megjelenítése az összes MySQL-kiszolgálón a diagnosztikai naplók engedélyezésével

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

Következő lépések