全部产品
Search
文档中心

AnalyticDB:Kueri lambat yang umum

更新时间:Jun 26, 2025

Topik ini menjelaskan kueri lambat yang umum di AnalyticDB for MySQL dan penyebabnya.

Kueri lambat yang mengonsumsi sumber daya memori

Memori maksimum dari kueri, ditentukan oleh parameter Memori Puncak, membantu Anda mengevaluasi penggunaan memori. Secara umum, semakin besar memori maksimum, semakin banyak sumber daya memori yang dikonsumsi.

Anda dapat menggunakan fitur diagnostik SQL untuk mencari kueri yang memerlukan waktu lama untuk dieksekusi dalam periode tertentu. Selanjutnya, Anda dapat melihat Peak Memory dari kueri tersebut di bagian Query Properties atau pada hasil diagnosis di berbagai tingkat. Untuk informasi lebih lanjut, lihat Lihat properti kueri dan hasil diagnosis.

Jumlah besar sumber daya memori mungkin dikonsumsi oleh kueri karena alasan berikut:
  • Operasi GROUP BY dilakukan dalam satu tahap.

    AnalyticDB for MySQL menyimpan nilai kolom yang direferensikan dalam klausa GROUP BY ke dalam memori. Jika kolom tersebut memiliki banyak nilai unik, konsumsi sumber daya memori akan menjadi signifikan.

  • Operasi JOIN dilakukan dalam satu tahap.

    Saat menggunakan hash join, AnalyticDB for MySQL menyimpan data tabel di memori. Semakin besar ukuran tabel yang disimpan, semakin banyak sumber daya memori yang digunakan.

  • Operasi SORT dilakukan dalam satu tahap.

    Saat data diurutkan, AnalyticDB for MySQL menyimpan data ke dalam memori. Semakin besar volume data yang diurutkan, semakin tinggi konsumsi sumber daya memori.

  • Fungsi jendela dieksekusi dalam satu tahap.

    Saat fungsi jendela dijalankan, AnalyticDB for MySQL menyimpan data dalam memori. Semakin besar volume data yang diproses oleh fungsi jendela, semakin tinggi konsumsi sumber daya memori. Untuk detail lebih lanjut, lihat Fungsi jendela.

Kueri lambat yang mengonsumsi sumber daya CPU

Durasi eksekusi kueri, ditentukan oleh parameter Waktu Terpakai, membantu Anda mengevaluasi pemanfaatan CPU. Secara umum, semakin lama durasi eksekusi, semakin banyak sumber daya CPU yang dikonsumsi.

Anda dapat menggunakan fitur diagnostik SQL untuk mencari kueri yang memerlukan waktu lama untuk dieksekusi dalam periode tertentu. Selanjutnya, Anda dapat melihat Time Consumed dari kueri tersebut di bagian Query Properties. Untuk informasi lebih lanjut, lihat Lihat properti kueri.

Jumlah besar sumber daya CPU mungkin dikonsumsi oleh kueri karena alasan berikut:
  • Kondisi filter tidak didorong ke bawah.Kondisi filter tidak didorong ke lapisan penyimpanan. Secara default, AnalyticDB for MySQL membuat indeks untuk semua kolom saat Anda membuat tabel. Indeks yang digunakan untuk menyaring data dapat sangat mengurangi sumber daya CPU yang dikonsumsi. Namun, kondisi filter tidak didorong ke bawah dalam beberapa skenario. Untuk informasi lebih lanjut, lihat .
  • Operasi filter ada dalam kondisi join. Jika kondisi filter termasuk dalam join, AnalyticDB for MySQL pertama-tama menggabungkan dua tabel dan kemudian menyaring data yang telah digabungkan. Dalam hal ini, tidak ada indeks yang dapat digunakan untuk penyaringan. Jika jumlah data yang besar dihasilkan setelah join, operasi filter mengonsumsi sejumlah besar sumber daya CPU.
  • Tidak ada kondisi join yang ditentukan untuk join. Jika tidak ada kondisi join yang ditentukan, AnalyticDB for MySQL melakukan operasi Produk Kartesius pada tabel kiri dan kanan. Jumlah baris yang dihasilkan adalah perkalian dari jumlah baris di tabel kiri dan kanan. Jenis operasi ini mengonsumsi sejumlah besar sumber daya CPU.

Kueri lambat yang mengonsumsi sumber daya disk I/O

Jumlah baris yang dipindai, ditentukan oleh parameter Baris yang Dipindai, dan jumlah data yang dipindai, ditentukan oleh parameter Jumlah Data yang Dipindai, membantu Anda mengevaluasi penggunaan disk I/O. Secara umum, semakin banyak baris yang dipindai dan semakin besar jumlah data yang dipindai, semakin banyak sumber daya disk I/O yang dikonsumsi.

Anda dapat menggunakan fitur diagnostik SQL untuk mencari kueri yang dieksekusi dalam periode waktu tertentu dan membutuhkan waktu lama. Selanjutnya, Anda dapat melihat Scanned Rows dan Scan Size dari kueri tertentu di bagian Query Properties atau pada hasil diagnosis di berbagai tingkat. Untuk informasi lebih lanjut, lihat Lihat properti kueri dan hasil diagnosis.

Jumlah besar sumber daya disk I/O mungkin dikonsumsi oleh kueri karena alasan berikut:
  • Kondisi filter hanya menyaring sejumlah kecil data, yang menyebabkan efisiensi indeks rendah dan sejumlah besar indeks dibaca.
  • Kondisi filter tidak didorong ke bawah. Hal ini menyebabkan pemindaian penuh tabel sumber.
  • Kondisi filter didorong ke bawah. Namun, ruang lingkup filter mereka besar, dan sejumlah besar data harus dipindai.
  • Sejumlah besar partisi harus dipindai. Secara umum, semakin banyak partisi menunjukkan semakin besar jumlah data yang harus dipindai.