Ketika sebuah kluster menjalankan ribuan kueri serupa per menit—yang hanya berbeda pada nilai filter atau ID—menganalisisnya satu per satu tidak praktis. Pola SQL mengelompokkan pernyataan yang secara struktural identik ke dalam satu tampilan sehingga Anda dapat menjawab pertanyaan seperti:
Pola kueri mana yang paling banyak mengonsumsi CPU atau memori?
Apakah performa suatu pola kueri berubah seiring waktu?
Pola mana yang paling sering dijalankan saat kluster sedang mengalami tekanan?
Seberapa sering suatu pola kueri gagal?
Pola dengan persentase penggunaan sumber daya di atas 30% akan disorot secara otomatis. Pernyataan SQL yang menyebabkan beban kerja berlebihan dapat dicegat. Untuk informasi selengkapnya, lihat Persist plan and query blocker.
Cara kerja
AnalyticDB for MySQL menganalisis pernyataan SQL secara real-time dan mengelompokkannya berdasarkan struktur teks SQL. Pernyataan yang hanya berbeda pada nilai literal—seperti kondisi filter atau nilai ID—digabungkan menjadi satu pola. Sebagai contoh, kedua kueri berikut termasuk dalam pola yang sama karena satu-satunya perbedaan adalah nilai literal pada klausa WHERE:
SELECT * FROM orders WHERE user_id = 1001
SELECT * FROM orders WHERE user_id = 2048Tampilan pola mengagregasi jumlah eksekusi, biaya CPU, memori, durasi, dan data yang dipindai dari semua pernyataan dalam kelompok tersebut.
Catatan penggunaan
Pola SQL hanya tersedia untuk 14 hari terakhir.
Setiap kueri mencakup rentang waktu maksimum 24 jam.
Lihat pola SQL
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Pada tab Data Warehouse Edition, temukan kluster tersebut dan klik ID-nya.
Di panel navigasi sebelah kiri, klik Diagnostics and Optimization.
Klik tab SQL Pattern.
Secara default, pola dari 30 menit terakhir ditampilkan. Filter berdasarkan kata kunci atau rentang waktu sesuai kebutuhan.
Parameter daftar pola SQL
| Parameter | Deskripsi |
|---|---|
| Actions | Klik View Details untuk membuka halaman Analisis Pola untuk pola ini. |
| Username | Akun database yang digunakan untuk mengirimkan pernyataan SQL dalam pola ini. |
| Client IP Address | Alamat IP client yang mengirimkan pernyataan SQL tersebut. |
| SQL Pattern | Pernyataan SQL representatif untuk pola ini. Klik ikon |
| Total CPU Cost | Total waktu CPU yang dikonsumsi oleh semua pernyataan dalam pola ini dalam rentang waktu tertentu. Persentase menunjukkan bagian pola ini dari total waktu CPU semua pola. Nilai di atas 30% disorot. Jika persentase CPU pola ini tinggi, periksa CPU metrics untuk analisis lebih lanjut. |
| Total Peak Memory | Total memori puncak yang dikonsumsi oleh semua pernyataan dalam pola ini dalam rentang waktu tertentu. Persentase menunjukkan bagian pola ini dari total memori puncak semua pola. Nilai di atas 30% disorot. Jika persentase memori pola ini tinggi, periksa compute memory usage metrics untuk analisis lebih lanjut. |
| Total Duration | Total durasi eksekusi semua pernyataan dalam pola ini dalam rentang waktu tertentu. Persentase menunjukkan bagian pola ini dari total durasi semua pola. Nilai di atas 30% disorot. Jika persentase durasi pola ini meningkat, periksa query response time metrics untuk melihat korelasinya. |
| Total Size of Read Data | Total ukuran data yang dibaca oleh semua pernyataan dalam pola ini dalam rentang waktu tertentu. Persentase menunjukkan bagian pola ini dari total data baca semua pola. Nilai di atas 30% disorot. Jika pola ini membaca jumlah data yang tidak proporsional, periksa table data reading metrics untuk analisis lebih lanjut. |
| Total Cost for Reading Data | Total waktu CPU yang dihabiskan untuk membaca data oleh semua pernyataan dalam pola ini dalam rentang waktu tertentu. Persentase menunjukkan bagian pola ini dari total waktu CPU pembacaan data semua pola. Nilai di atas 30% disorot. Nilai tinggi meningkatkan pemanfaatan CPU pada node reservasi (storage nodes). Periksa CPU metrics of reserved nodes atau original storage nodes untuk analisis lebih lanjut. |
| Average CPU Cost | Rata-rata waktu CPU per eksekusi dalam rentang waktu tertentu. |
| Maximum CPU Cost | Waktu CPU maksimum untuk satu eksekusi dalam rentang waktu tertentu. |
| Average CPU Cost for Reading Tables | Rata-rata waktu CPU yang dihabiskan untuk membaca data per eksekusi dalam rentang waktu tertentu. |
| Maximum CPU Cost for Reading Tables | Waktu CPU maksimum yang dihabiskan untuk membaca data dalam satu eksekusi dalam rentang waktu tertentu. |
| Executions | Jumlah kali pernyataan dalam pola ini dijalankan dalam rentang waktu tertentu. Urutkan berdasarkan kolom ini untuk mengidentifikasi pola yang paling sering dieksekusi selama lonjakan sumber daya kluster. |
| Failures | Jumlah eksekusi yang gagal dalam rentang waktu tertentu. |
| Average Total Time Consumed | Rata-rata total waktu per eksekusi. Satuan: milidetik. |
| Maximum Total Time Consumed | Total waktu maksimum untuk satu eksekusi. Satuan: milidetik. Jika Maximum Total Time Consumed mendekati Average Total Time Consumed selama operasi normal, lonjakan total waktu kemungkinan besar disebabkan oleh konflik sumber daya dari pola lain, bukan dari pola ini sendiri. |
| Average Execution Duration | Rata-rata durasi eksekusi per pernyataan dalam rentang waktu tertentu. Satuan: milidetik. |
| Maximum Execution Duration | Durasi eksekusi maksimum untuk satu pernyataan dalam rentang waktu tertentu. Satuan: milidetik. Untuk detailnya, lihat Use query monitoring charts and SQL queries. |
| Average Peak Memory | Rata-rata memori puncak per eksekusi dalam rentang waktu tertentu. Satuan: byte. |
| Maximum Peak Memory | Memori puncak maksimum untuk satu eksekusi dalam rentang waktu tertentu. Satuan: byte. Jika Maximum Peak Memory jauh lebih tinggi daripada Average Peak Memory, data yang dipindai oleh pola mungkin telah meningkat atau rencana eksekusi mungkin telah berubah. Klik View Details untuk mengidentifikasi penyebabnya. |
| Average Data Scanned | Rata-rata jumlah data yang dipindai per eksekusi dalam rentang waktu tertentu. Satuan: MB. |
| Maximum Data Scanned | Data maksimum yang dipindai dalam satu eksekusi dalam rentang waktu tertentu. Satuan: MB. Jika Maximum Data Scanned jauh lebih tinggi daripada Average Data Scanned, data yang dipindai tidak stabil. Identifikasi penyebabnya sebelum pola ini memengaruhi performa kluster. |
| Table Name | Nama tabel yang dipindai oleh pernyataan dalam pola ini. |
Analisis pola
Pada tab SQL Pattern, klik View Details di kolom Actions untuk membuka halaman Pattern Analysis. Halaman ini menampilkan metrik utama untuk pola tersebut dalam grafik deret waktu dalam rentang waktu yang dipilih, termasuk eksekusi, total waktu yang dikonsumsi, durasi eksekusi, data yang dipindai, dan memori puncak. Untuk setiap metrik, nilai maksimum dan rata-rata ditampilkan untuk membantu Anda membedakan antara eksekusi tipikal dan outlier.
Halaman ini juga mencantumkan semua pernyataan SQL individual yang termasuk dalam pola ini dalam rentang waktu tersebut. Klik Diagnose di kolom Actions untuk melihat hasil diagnostik dan rencana eksekusi untuk pernyataan tertentu. Untuk informasi selengkapnya, lihat Use execution plans to analyze queries.