All Products
Search
Document Center

AnalyticDB:Analisis kueri menggunakan rencana eksekusi

Last Updated:Mar 29, 2026

Ketika sebuah kueri berjalan lambat, mengetahui durasi total saja tidak cukup—Anda perlu mengetahui di mana waktu dihabiskan dan bagian mana dari rencana yang menjadi bottleneck. AnalyticDB for MySQL menyediakan fitur SQL diagnostics yang memvisualisasikan rencana eksekusi sebagai bagan hierarki interaktif dua lapisan, yang menunjukkan cara kueri dieksekusi di seluruh kluster (lapisan stage) dan di dalam setiap stage (lapisan operator). Setiap node menampilkan durasi, penggunaan memori, jumlah baris, serta rekomendasi diagnostik, sehingga Anda dapat mengidentifikasi stage atau operator paling lambat tanpa menebak-nebak.

Cara kerja

Rencana eksekusi berupa bagan hierarki dua lapisan:

  • Stage layer: Menunjukkan cara kueri dibagi menjadi beberapa stage dan bagaimana data berpindah antar node komputasi.

  • Operator layer: Memperdalam satu stage tertentu untuk menampilkan setiap operator, propertinya, serta penggunaan sumber dayanya.

Data mengalir dari bawah ke atas pada kedua lapisan tersebut. Pada lapisan stage, stage pemindaian (scan) membaca data mentah terlebih dahulu; stage perantara memprosesnya; node akar di bagian atas mengembalikan hasil ke klien. Lapisan operator mengikuti pola yang sama: operator TableScan dan RemoteSource di bagian bawah mengalirkan data ke atas menuju operator StageOutput atau Output di akar.

Catatan

Jika sistem mendeteksi potensi optimasi untuk suatu stage atau operator, ikon merah berisi tanda seru (!) akan muncul pada node tersebut di bagan.

Stage layer

Lapisan stage memberikan tampilan eksekusi kueri secara keseluruhan kluster.

1

Apa yang ditampilkan setiap stage

Setiap persegi panjang merepresentasikan satu stage dan menampilkan:

  • Stage ID

  • Tipe output data (cara data keluar dari stage ini)

  • Duration atau consumed memory—alihkan tampilan menggunakan tombol By Duration dan By Memory di pojok kanan atas

Aliran data antar stage

Angka pada garis yang menghubungkan dua stage berdekatan menunjukkan jumlah baris yang dikirim dari stage hulu ke hilir. Garis yang lebih tebal berarti lebih banyak baris.

Data berpindah antar stage menggunakan salah satu dari tiga metode berikut:

Metode output dataDeskripsi
BroadcastSetiap node komputasi di stage hulu mengirim salinan lengkap datanya ke semua node komputasi di stage hilir. 1
RepartitionSetiap node komputasi di stage hulu mempartisi datanya sesuai aturan tertentu dan mengirim setiap partisi ke node komputasi tujuan di stage hilir. 2
GatherSetiap node komputasi di stage hulu mengirim seluruh datanya ke satu node komputasi tunggal di stage hilir. 3

Top 10 node berdasarkan durasi atau memori

Panel Top 10 Nodes in Descending Order by Duration or Memory di sebelah kanan mencantumkan stage-stage yang memiliki kontribusi terbesar terhadap total durasi atau penggunaan memori kueri. Secara default, panel ini diurutkan berdasarkan durasi. Pilih By Memory untuk beralih ke tampilan berdasarkan penggunaan memori.

Stage yang menyumbang kurang dari 1% terhadap total durasi atau memori tidak ditampilkan—node tersebut terlalu kecil untuk memengaruhi performa kueri secara keseluruhan. Persentase yang ditampilkan mungkin tidak berjumlah 100% karena perbedaan cara pengumpulan metrik.

Hasil diagnostik

Klik suatu stage (misalnya, Stage[1]) untuk membuka panel Diagnostic Results di sebelah kanan. Panel ini berisi:

  • Stage Diagnostics: Penjelasan rinci mengenai isu yang terdeteksi pada stage tersebut—seperti volume data broadcast yang besar atau data skew—beserta rekomendasi optimasi.

  • Operator Diagnostics: Ringkasan operator dalam stage tersebut yang memiliki isu terdeteksi. Untuk detail lengkap dan panduan optimasi, masuklah ke lapisan operator.

Untuk daftar lengkap jenis diagnostik tingkat stage, lihat Stage-level diagnostic results.

Statistik stage

Bagian Statistics di bawah Diagnostic Results menampilkan metrik sumber daya untuk stage yang dipilih.

MetrikDeskripsi
Peak MemoryMemori maksimum yang dikonsumsi oleh stage. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Cumulative DurationTotal waktu eksekusi di seluruh node, thread, dan operator dalam stage tersebut. Satuan otomatis menyesuaikan ke ms, s, m, atau h. Nilai ini merupakan jumlah dari seluruh Parallel Worker dan tidak dapat dibandingkan langsung dengan total durasi kueri.
Output RowsJumlah baris yang dihasilkan oleh stage.
Amount of Output DataVolume data yang dihasilkan oleh stage. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Input RowsJumlah baris yang diterima oleh stage.
Amount of Input DataVolume data yang diterima oleh stage. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Scanned RowsJumlah baris yang dibaca dari penyimpanan. Hanya ditampilkan untuk stage yang mengandung operator scan.
Scan SizeVolume data yang dibaca dari penyimpanan. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB. Hanya ditampilkan untuk stage yang mengandung operator scan.

Operator layer

Lapisan operator menampilkan rencana eksekusi di dalam satu stage, hingga ke level operator individual.

Untuk membuka lapisan operator, arahkan kursor ke stage apa pun dan klik View Stage Plans pada tooltip yang muncul.

34

Apa yang ditampilkan setiap operator

Setiap persegi panjang merepresentasikan satu operator dan menampilkan:

  • Nama dan ID operator

  • Properti—misalnya, kondisi join dan algoritma operator JOIN

  • Duration atau consumed memory—alihkan tampilan menggunakan By Duration dan By Memory

Aliran data antar operator

Angka pada garis yang menghubungkan dua operator berdekatan menunjukkan jumlah baris yang dikirim dari operator hulu ke hilir. Garis yang lebih tebal berarti lebih banyak baris.

Top 10 node berdasarkan durasi atau memori

Panel Top 10 Nodes in Descending Order by Duration or Memory mencantumkan operator-operator yang memiliki kontribusi terbesar terhadap durasi atau penggunaan memori dalam stage tersebut. Secara default, panel ini diurutkan berdasarkan durasi. Pilih By Memory untuk beralih ke tampilan berdasarkan penggunaan memori. Operator yang menyumbang kurang dari 1% terhadap total durasi atau memori tidak ditampilkan. Persentase yang ditampilkan mungkin tidak berjumlah 100% karena perbedaan cara pengumpulan metrik.

Hasil diagnostik

Klik suatu operator (misalnya, Join[36184]) untuk membuka panel Diagnostic Results. Panel ini menampilkan isu yang terdeteksi dan rekomendasi optimasi untuk operator tersebut—seperti data skew atau tabel sisi kanan join yang terlalu besar.

5

Untuk daftar lengkap jenis diagnostik tingkat operator, lihat Operator-level diagnostic results.

Statistik operator

Bagian Statistics di bawah Diagnostic Results menampilkan metrik sumber daya untuk operator yang dipilih.

MetrikDeskripsi
Peak MemoryMemori maksimum yang dikonsumsi oleh operator. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Time ConsumedWaktu eksekusi rata-rata operator pada tingkat konkurensi aktualnya. Satuan otomatis menyesuaikan ke ms, s, m, atau h. Nilai ini dapat dibandingkan langsung dengan total durasi kueri.
Output RowsJumlah baris yang dihasilkan oleh operator.
Amount of Output DataVolume data yang dihasilkan oleh operator. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Input RowsJumlah baris yang diterima oleh operator.
Amount of Input DataVolume data yang diterima oleh operator. Satuan otomatis menyesuaikan ke Bytes, KB, MB, GB, atau TB.
Builder StatisticsStatistik fase build untuk operator JOIN, termasuk tipe builder, peak memory, durasi, input rows, output rows, dan volume data. Tersedia tiga tipe builder: HashBuilder (membangun tabel hash untuk hash join), SetBuilder (membangun himpunan untuk semi join), dan NestLoopBuilder (menangani nested loop join). Hanya ditampilkan untuk operator JOIN.
PropertiesDetail konfigurasi spesifik operator. Untuk operator JOIN, ini mencakup jenis join dan metode join. Untuk daftar lengkap properti operator, lihat Operators.

Pola performa umum

Pola-pola berikut umumnya muncul dalam rencana eksekusi kueri yang lambat. Gunakan lapisan stage dan operator untuk mengidentifikasinya.

Volume data broadcast yang besar

Broadcast mentransfer salinan lengkap data hulu ke setiap node komputasi hilir. Jika stage hulu berukuran besar, hal ini secara signifikan meningkatkan lalu lintas jaringan dan penggunaan memori. Cari stage dengan output Broadcast dan jumlah baris tinggi pada garis penghubung. Panel Stage Diagnostics akan menandai isu ini dan memberikan rekomendasi optimasi.

Data skew

Data skew terjadi ketika satu node komputasi memproses jauh lebih banyak baris dibandingkan node lainnya. Pada lapisan stage, stage yang skewed biasanya menunjukkan Cumulative Duration tinggi relatif terhadap stage lain yang memiliki fungsi serupa. Panel Diagnostic Results mengidentifikasi skew dan menyarankan solusi optimasi.

Tabel sisi kanan join yang terlalu besar

Untuk operator JOIN, tabel sisi kanan dimuat ke dalam memori selama fase build. Tabel sisi kanan yang terlalu besar menyebabkan Peak Memory tinggi pada operator JOIN. Periksa Builder Statistics di bagian Statistics operator untuk melihat penggunaan memori dan jumlah baris pada fase build. Panel Diagnostic Results akan menandai isu ini jika terdeteksi.