Bekerja dengan akselerasi kueri pendek - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan akselerasi kueri pendek

Akselerasi kueri singkat (SQA) memprioritaskan kueri jangka pendek yang dipilih sebelum kueri yang berjalan lebih lama. SQA menjalankan kueri jangka pendek di ruang khusus, sehingga kueri SQA tidak dipaksa untuk menunggu dalam antrian di belakang kueri yang lebih panjang. SQA hanya memprioritaskan kueri yang berjalan singkat dan berada dalam antrian yang ditentukan pengguna. Dengan SQA, kueri jangka pendek mulai berjalan lebih cepat dan pengguna melihat hasilnya lebih cepat.

Jika Anda mengaktifkan SQA, Anda dapat mengurangi antrian manajemen beban kerja (WLM) yang didedikasikan untuk menjalankan kueri singkat. Selain itu, kueri yang berjalan lama tidak perlu bersaing dengan kueri singkat untuk slot dalam antrian, sehingga Anda dapat mengonfigurasi antrian WLM Anda untuk menggunakan lebih sedikit slot kueri. Bila Anda menggunakan konkurensi yang lebih rendah, throughput kueri meningkat dan kinerja sistem secara keseluruhan ditingkatkan untuk sebagian besar beban kerja.

BUAT TABEL SEBAGAIPernyataan (CTAS) dan kueri hanya-baca, seperti SELECT pernyataan, memenuhi syarat untuk SQA.

Amazon Redshift menggunakan algoritma pembelajaran mesin untuk menganalisis setiap kueri yang memenuhi syarat dan memprediksi waktu eksekusi kueri. Secara default, WLM secara dinamis menetapkan nilai untuk runtime maksimum SQA berdasarkan analisis beban kerja klaster Anda. Atau, Anda dapat menentukan nilai tetap 1-20 detik. Jika waktu berjalan yang diprediksi kueri kurang dari runtime maksimum SQA yang ditentukan atau ditetapkan secara dinamis dan kueri menunggu dalam antrian WLM, SQA memisahkan kueri dari antrian WLM dan menjadwalkannya untuk eksekusi prioritas. Jika kueri berjalan lebih lama dari runtime maksimum SQA, WLM memindahkan kueri ke antrian WLM pertama yang cocok berdasarkan aturan penetapan antrian WLM. Seiring waktu, prediksi meningkat saat SQA belajar dari pola kueri Anda.

SQA diaktifkan secara default di grup parameter default dan untuk semua grup parameter baru. Untuk menonaktifkan SQA di konsol Amazon Redshift, edit konfigurasi WLM untuk grup parameter dan batalkan pilihan Aktifkan akselerasi kueri singkat. Sebagai praktik terbaik, kami sarankan menggunakan jumlah slot kueri WLM 15 atau kurang untuk mempertahankan kinerja sistem keseluruhan yang optimal. Untuk informasi tentang memodifikasi konfigurasi WLM, lihat Mengonfigurasi Manajemen Beban Kerja di Panduan Manajemen Amazon Redshift.

Runtime maksimum untuk kueri singkat

Saat Anda mengaktifkan SQA, WLM menetapkan runtime maksimum untuk kueri singkat ke dinamis secara default. Kami merekomendasikan untuk menjaga pengaturan dinamis untuk runtime maksimum SQA. Anda dapat mengganti pengaturan default dengan menentukan nilai tetap 1-20 detik.

Dalam beberapa kasus, Anda mungkin mempertimbangkan untuk menggunakan nilai yang berbeda untuk nilai runtime maksimum SQA untuk meningkatkan kinerja sistem Anda. Dalam kasus seperti itu, analisis beban kerja Anda untuk menemukan waktu eksekusi maksimum untuk sebagian besar kueri jangka pendek Anda. Kueri berikut mengembalikan runtime maksimum untuk kueri sekitar persentil ke-70.

select least(greatest(percentile_cont(0.7) within group (order by total_exec_time / 1000000) + 2, 2), 20) from stl_wlm_query where userid >= 100 and final_state = 'Completed';

Setelah Anda mengidentifikasi nilai runtime maksimum yang berfungsi dengan baik untuk beban kerja Anda, Anda tidak perlu mengubahnya kecuali beban kerja Anda berubah secara signifikan.

Pemantauan SQA

Untuk memeriksa apakah SQA diaktifkan, jalankan query berikut. Jika query mengembalikan baris, maka SQA diaktifkan.

select * from stv_wlm_service_class_config where service_class = 14;

Kueri berikut menunjukkan jumlah kueri yang melewati setiap antrian kueri (kelas layanan). Ini juga menunjukkan waktu eksekusi rata-rata, jumlah kueri dengan waktu tunggu pada persentil ke-90, dan waktu tunggu rata-rata. Kueri SQA digunakan di kelas layanan 14.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Untuk menemukan kueri mana yang diambil oleh SQA dan berhasil diselesaikan, jalankan kueri berikut.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Completed' order by b.query desc limit 5;

Untuk menemukan kueri yang diambil SQA tetapi waktunya habis, jalankan kueri berikut.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Evicted' order by b.query desc limit 5;

Untuk informasi selengkapnya tentang kueri yang diusir dan, lebih umum, tindakan berbasis aturan yang dapat diambil pada kueri, lihat. Aturan pemantauan kueri WLM