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 serverlong_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
- Pelajari selengkapnya tentang log audit
- Wawasan kinerja kueri