Delen via


Logboeken voor trage query's in Azure Database for MySQL - Flexibele server

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server

In azure Database for MySQL flexibele server is het logboek voor langzame query's 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 serverparameter long_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 een flexibele Azure Database for MySQL-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_TABLEworden 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 log_queries_not_using_indexes en log_throttle_queries_not_using_indexes parameters op ON van invloed zijn op de 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 in uw exemplaar van flexibele Azure Database for MySQL-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 die zijn opgenomen 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_swordt 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 flexibele Azure Database for MySQL-servers 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
    

Volgende stappen