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_text
az 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