Log kueri lambat di Azure Database for MySQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel

Di server fleksibel Azure Database for MySQL, log kueri lambat tersedia bagi pengguna untuk dikonfigurasi dan diakses. Log kueri lambat dinonaktifkan secara default dan dapat diaktifkan untuk membantu mengidentifikasi penyempitan performa selama pemecahan masalah.

Untuk informasi lebih lanjut log kueri lambat MySQL, lihat bagian log kueri lambat di dokumentasi mesin MySQL.

Mengonfigurasi pengelogan kueri lambat

Secara default, log kueri lambat dinonaktifkan. Untuk mengaktifkan log, atur parameter server slow_query_log ke AKTIF. Ini dapat dikonfigurasi menggunakan portal Azure atau Azure CLI.

Parameter lain yang bisa Anda sesuaikan untuk mengontrol perilaku pengelogan kueri lambat meliputi:

  • long_query_time: mencatat kueri jika diperlukan waktu lebih lama dari long_query_time (dalam detik) untuk menyelesaikannya. Interval defaultnya adalah 10 detik. Parameter server long_query_time berlaku secara global untuk semua koneksi yang baru dibuat di MySQL. Namun, itu tidak memengaruhi utas yang sudah tersambung. Disarankan untuk terhubung kembali ke server fleksibel Azure Database for MySQL dari aplikasi, atau memulai ulang server akan membantu menghapus utas dengan nilai "long_query_time" yang lebih lama dan menerapkan nilai parameter yang diperbarui.
  • log_slow_admin_statements: menentukan apakah pernyataan administratif (misalnya. ALTER_TABLE, ANALYZE_TABLE) dicatat.
  • log_queries_not_using_indexes: menentukan apakah kueri yang tidak menggunakan indeks dicatat.
  • log_throttle_queries_not_using_indexes: membatasi jumlah kueri yang tidak diindeks yang dapat ditulis ke log kueri lambat. Parameter ini berlaku ketika log_queries_not_using_indexes disetel menjadi AKTIF

Penting

Jika tabel Anda tidak diindeks, mengatur parameter log_queries_not_using_indexes dan log_throttle_queries_not_using_indexes ke AKTIF dapat memengaruhi performa MySQL karena semua kueri yang berjalan terhadap tabel yang tidak diindeks tersebut akan ditulis ke log kueri lambat.

Lihat dokumentasi log kueri lambat MySQL untuk deskripsi lengkap parameter log kueri lambat.

Akses log kueri lambat

Log kueri lambat diintegrasi dengan pengaturan diagnostik Azure Monitor. Setelah mengaktifkan log kueri lambat di instans server fleksibel Azure Database for MySQL, Anda dapat memancarkannya ke log Azure Monitor, Azure Event Hubs, atau Azure Storage. Untuk mempelajari lebih lanjut pengaturan diagnostik, lihat dokumentasi log diagnostik. Untuk mempelajari lebih lanjut cara mengaktifkan pengaturan diagnostik di portal Microsoft Azure, lihat artikel portal log kueri lambat.

Catatan

Akun Penyimpanan Premium tidak didukung jika Anda mengirim log ke penyimpanan Azure melalui diagnostik dan pengaturan.

Tabel berikut ini menjelaskan output log kueri lambat. Tergantung pada metode output, bidang yang dimasukkan dan urutan munculnya dapat bervariasi.

Properti Keterangan
TenantId ID penyewa Anda
SourceSystem Azure
TimeGenerated [UTC] Tanda waktu ketika log direkam di UTC
Type Jenis log. Selalu AzureDiagnostics
SubscriptionId GUID untuk langganan milik server
ResourceGroup Nama grup sumber daya milik server
ResourceProvider Nama penyedia sumber daya. Selalu MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId URI Sumber Daya
Resource Nama server
Category MySqlSlowLogs
OperationName LogEvent
Logical_server_name_s Nama server
start_time_t [UTC] Waktu kueri dimulai
query_time_s Total waktu dalam detik yang diperlukan kueri untuk dijalankan
lock_time_s Total waktu dalam detik yang diperlukan kueri untuk dikunci
user_host_s Nama Pengguna
rows_sent_s Jumlah baris yang dikirim
rows_examined_s Jumlah baris yang diperiksa
last_insert_id_s last_insert_id
insert_id_s Masukkan ID
sql_text_s Kueri lengkap
server_id_s ID server
thread_id_s ID Utas
\_ResourceId URI Sumber Daya

Catatan

Untuk sql_text_s, log akan terpotong jika melebihi 2.048 karakter.

Menganalisis log di Azure Monitor Logs

Setelah log kueri lambat disalurkan ke Azure Monitor Logs melalui Log Diagnostik, Anda dapat melakukan analisis selengkapnya tentang kueri lambat. Di bawah ini adalah beberapa contoh kueri untuk membantu Anda memulai. Pastikan untuk memperbarui di bawah ini dengan nama server Anda.

  • Kueri lebih lama dari 10 detik di sebuah server tertentu

    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
    
  • Daftar 5 kueri terpanjang di sebuah server tertentu

    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
    
  • Ringkas kueri lambat dengan waktu kueri minimum, maksimum, rata-rata, dan simpangan baku pada server tertentu

    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 
    
  • Membuat grafik distribusi kueri lambat di server tertentu

    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
    
  • Menampilkan kueri yang lebih dari 10 detik di semua instans server fleksibel Azure Database for MySQL dengan Log Diagnostik diaktifkan

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

Langkah berikutnya