Logboeken voor trage query's in Azure Database for MySQL - Flexibele server
In Azure Database for MySQL Flexible Server is het langzame querylogboek beschikbaar voor gebruikers om te configureren en toegang te krijgen. Logboeken voor trage query's zijn standaard uitgeschakeld en kunnen worden ingeschakeld om te helpen bij het identificeren van prestatieknelpunten tijdens het oplossen van problemen.
Zie de sectie logboek voor langzame query's in MySQL in de documentatie van de MySQL-engine voor meer informatie over het logboek voor langzame mySQL-query's.
Logboekregistratie van langzame query's configureren
Standaard is het logboek voor langzame query's uitgeschakeld. Als u logboeken wilt inschakelen, stelt u de slow_query_log
serverparameter in op AAN. Dit kan worden geconfigureerd met behulp van Azure Portal of Azure CLI.
Andere parameters die u kunt aanpassen om het gedrag van logboekregistratie van trage query's te beheren, zijn onder andere:
- long_query_time: een query vastleggen als het langer duurt dan
long_query_time
(in seconden) om deze te voltooien. De standaardwaarde is 10 seconden. De serverparameterlong_query_time
is globaal van toepassing op alle nieuw tot stand gebrachte verbindingen in MySQL. Dit heeft echter geen invloed op threads die al zijn verbonden. Het is raadzaam om opnieuw verbinding te maken met Azure Database for MySQL Flexible Server vanuit de toepassing, of door de server opnieuw te starten, kunt u threads met oudere waarden van 'long_query_time' wissen en de bijgewerkte parameterwaarde toepassen. - log_slow_admin_statements: bepaalt of administratieve instructies (bijvoorbeeld
ALTER_TABLE
)ANALYZE_TABLE
worden geregistreerd. - log_queries_not_using_indexes: bepaalt of query's die geen indexen gebruiken, worden geregistreerd.
- log_throttle_queries_not_using_indexes: beperkt het aantal niet-geïndexeerde query's dat naar het langzame querylogboek kan worden geschreven. Deze parameter wordt van kracht wanneer
log_queries_not_using_indexes
deze is ingesteld op AAN
Belangrijk
Als uw tabellen niet zijn geïndexeerd, kan het instellen van de en log_throttle_queries_not_using_indexes
parameters op ON van invloed zijn op de log_queries_not_using_indexes
MySQL-prestaties, omdat alle query's die worden uitgevoerd op deze niet-geïndexeerde tabellen, naar het langzame querylogboek worden geschreven.
Zie de documentatie voor langzame mySQL-querylogboeken voor volledige beschrijvingen van de logboekparameters voor langzame query's.
Toegang tot logboeken voor langzame query's
Logboeken voor trage query's zijn geïntegreerd met diagnostische instellingen van Azure Monitor. Zodra u trage querylogboeken hebt ingeschakeld op uw exemplaar van Azure Database for MySQL Flexible Server, kunt u ze verzenden naar Azure Monitor-logboeken, Event Hubs of Azure Storage. Zie de documentatie voor diagnostische logboeken voor meer informatie over diagnostische instellingen. Zie het artikel over de logboekportal voor langzame query's voor meer informatie over het inschakelen van diagnostische instellingen in Azure Portal.
Notitie
Premium Storage-accounts worden niet ondersteund als u de logboeken naar Azure Storage verzendt via diagnostische gegevens en instellingen.
In de volgende tabel wordt de uitvoer van het logboek voor langzame query's beschreven. Afhankelijk van de uitvoermethode kunnen de velden en de volgorde waarin ze worden weergegeven variëren.
Eigenschappen | Beschrijving |
---|---|
TenantId |
Uw tenant-id |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Tijdstempel waarop het logboek is vastgelegd in UTC |
Type |
Type van het logboek. Altijd AzureDiagnostics |
SubscriptionId |
GUID voor het abonnement waartoe de server behoort |
ResourceGroup |
De naam van de resourcegroep waartoe de server behoort |
ResourceProvider |
Naam van de resourceprovider. Altijd MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
Resource-URI |
Resource |
Naam van de server |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
Naam van de server |
start_time_t [UTC] |
Tijdstip waarop de query is gestart |
query_time_s |
Totale tijd in seconden die de query heeft geduurd om uit te voeren |
lock_time_s |
Totale tijd in seconden dat de query is vergrendeld |
user_host_s |
Username |
rows_sent_s |
Aantal verzonden rijen |
rows_examined_s |
Aantal onderzochte rijen |
last_insert_id_s |
last_insert_id |
insert_id_s |
Id invoegen |
sql_text_s |
Volledige query |
server_id_s |
De id van de server |
thread_id_s |
Thread-id |
\_ResourceId |
Resource-URI |
Notitie
Logboek sql_text_s
wordt afgekapt als het langer is dan 2048 tekens.
Logboeken analyseren in Azure Monitor-logboeken
Zodra uw logboeken met trage query's via diagnostische logboeken naar Azure Monitor-logboeken worden doorgesluisd, kunt u verdere analyse uitvoeren van uw trage query's. Hieronder vindt u enkele voorbeeldquery's om u te helpen aan de slag te gaan. Zorg ervoor dat u het onderstaande bijwerkt met de servernaam.
Query's langer dan 10 seconden op een bepaalde 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
Top 5 langste query's op een bepaalde server weergeven
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
Trage query's samenvatten op minimale, maximale, gemiddelde en standaarddeviatiequerytijd op een bepaalde 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
Grafiek van de trage querydistributie op een bepaalde 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
Query's weergeven die langer zijn dan 10 seconden voor alle Exemplaren van Azure Database for MySQL Flexible Server waarvoor diagnostische logboeken zijn ingeschakeld
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10