AnalyticDB for MySQL menyediakan fitur diagnostik SQL untuk mengumpulkan statistik secara terpisah pada tingkat kueri, tahap, dan operator. Statistik ini digunakan untuk mendiagnosis masalah serta memberikan saran optimasi. Topik ini menjelaskan cara melihat dan menganalisis hasil diagnostik tingkat tahap.
Jenis hasil diagnosis
Sejumlah besar data disiarkan
- Masalah
Penyiaran adalah metode yang digunakan untuk mentransmisikan data dari tahap hulu ke tahap hilir. Untuk informasi lebih lanjut, lihat Jenis Output Data. Jika suatu tahap menyiarkan sejumlah besar data, kueri dapat memakan sebagian besar sumber daya memori maksimum.
- Saran
- Pertama-tama, tentukan apakah operasi penyiaran saat ini sudah sesuai. Jika data dalam suatu tahap disiarkan, data siaran tersebut digunakan sebagai tabel kanan dalam join untuk membangun tabel hash di memori. Semakin kecil ukuran tabel kanan, semakin baik. Dalam skenario kueri dengan konkurensi tinggi, metode penyiaran dapat membantu mengurangi koneksi jaringan antar node dan meningkatkan stabilitas keseluruhan sistem. Gambar berikut menunjukkan proses eksekusi jika tabel kecil tidak disiarkan dalam skenario di mana kemiringan data terjadi dalam kondisi join.

Jika kemiringan data parah terjadi pada kolom
bdari tabelTsmalldan ketika data dalam tabelTbigdidistribusikan secara merata di seluruh node penyimpanan AnalyticDB for MySQL berdasarkan koloma, ekor panjang waktu pemrosesan terjadi dalam redistribusi data tabelTbig, dan ekor panjang juga terjadi ketika tahap hilir melakukan join.Gambar berikut menunjukkan proses eksekusi jika data tabelTbigtidak didistribusikan ulang tetapi tabelTsmalldisiarkan.
Gambar di atas menunjukkan bahwa masalah ekor panjang pemrosesan yang disebabkan oleh kemiringan data dapat diselesaikan hanya dengan menyiarkan tabel
Tsmall. - Dalam beberapa skenario seperti kedaluwarsa statistik, ukuran tabel yang diperkirakan tidak akurat, yang menyebabkan sejumlah besar data disiarkan. Dalam hal ini, Anda dapat menggunakan petunjuk
JOIN_DISTRIBUTION_TYPE=repartitioneduntuk menonaktifkan fitur penyiaran data.
Kemiringan data terjadi pada input tahap
- MasalahKemiringan data dapat terjadi pada data input tahap karena alasan berikut:
- Kolom distribusi yang dipilih saat membuat tabel tidak sesuai. Operator pemindaian data dalam suatu tahap condong saat data sedang dipindai.
- Kemiringan data terjadi saat data ditransfer melalui jaringan dari tahap hulu ke tahap saat ini.
- Saran
- Pilih kolom distribusi yang sesuai saat membuat tabel. Untuk informasi lebih lanjut, lihat Diagnostik Penyimpanan.
- Periksa apakah data output condong pada tahap hulu. Untuk informasi lebih lanjut, lihat Kemiringan Data Terjadi pada Output Tahap.
Kemiringan data terjadi pada output tahap
- Masalah
Kemiringan data pada output tahap dapat menyebabkan waktu pemrosesan yang tidak merata dan ekor panjang. Jika pemrosesan tahap hilir kompleks, ekor panjang terjadi saat tahap hilir memproses data. Hal ini memengaruhi kinerja kueri keseluruhan.
- Saran
Periksa apakah kemiringan data terjadi pada kolom yang ditampilkan dalam hasil diagnostik. Sebagai contoh, ada sejumlah besar nilai null.