Faktor-faktor yang mempengaruhi kinerja kueri - Amazon Redshift

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

Faktor-faktor yang mempengaruhi kinerja kueri

Sejumlah faktor dapat mempengaruhi kinerja kueri. Aspek berikut dari operasi data, cluster, dan database Anda semuanya berperan dalam seberapa cepat proses kueri Anda.

  • Jumlah node, prosesor, atau irisan — Node komputasi dipartisi menjadi irisan. Lebih banyak node berarti lebih banyak prosesor dan lebih banyak irisan, yang memungkinkan kueri Anda memproses lebih cepat dengan menjalankan bagian kueri secara bersamaan di seluruh irisan. Namun, lebih banyak node juga berarti biaya yang lebih besar, jadi Anda perlu menemukan keseimbangan biaya dan kinerja yang sesuai untuk sistem Anda. Untuk informasi selengkapnya tentang arsitektur klaster Amazon Redshift, lihat. Arsitektur sistem gudang data

  • Tipe node — Cluster Amazon Redshift dapat menggunakan salah satu dari beberapa jenis node. Setiap jenis node menawarkan ukuran dan batasan yang berbeda untuk membantu Anda menskalakan klaster dengan tepat. Ukuran node menentukan kapasitas penyimpanan, memori, CPU, dan harga setiap node dalam cluster. Untuk informasi selengkapnya tentang jenis node, lihat Ringkasan klaster Amazon Redshift di Panduan Manajemen Pergeseran Merah Amazon.

  • Distribusi data — Amazon Redshift menyimpan data tabel pada node komputasi sesuai dengan gaya distribusi tabel. Saat Anda menjalankan kueri, pengoptimal kueri mendistribusikan ulang data ke node komputasi sesuai kebutuhan untuk melakukan gabungan dan agregasi apa pun. Memilih gaya distribusi yang tepat untuk tabel membantu meminimalkan dampak langkah redistribusi dengan menemukan data di tempat yang diperlukan sebelum penggabungan dilakukan. Untuk informasi selengkapnya, lihat Bekerja dengan gaya distribusi data.

  • Urutan pengurutan data - Amazon Redshift menyimpan data tabel pada disk dalam urutan yang diurutkan sesuai dengan kunci pengurutan tabel. Pengoptimal kueri dan prosesor kueri menggunakan informasi tentang lokasi data untuk mengurangi jumlah blok yang perlu dipindai dan dengan demikian meningkatkan kecepatan kueri. Untuk informasi selengkapnya, lihat Bekerja dengan tombol sortir.

  • Ukuran set data — Volume data yang lebih tinggi di cluster dapat memperlambat kinerja kueri untuk kueri, karena lebih banyak baris perlu dipindai dan didistribusikan kembali. Anda dapat mengurangi efek ini dengan menyedot debu dan pengarsipan data secara teratur, dan dengan menggunakan predikat untuk membatasi kumpulan data kueri.

  • Operasi bersamaan — Menjalankan beberapa operasi sekaligus dapat memengaruhi kinerja kueri. Setiap operasi mengambil satu atau lebih slot dalam antrian kueri yang tersedia dan menggunakan memori yang terkait dengan slot tersebut. Jika operasi lain berjalan, slot antrian kueri yang cukup mungkin tidak tersedia. Dalam hal ini, kueri harus menunggu slot terbuka sebelum dapat mulai diproses. Untuk informasi selengkapnya tentang membuat dan mengonfigurasi antrian kueri, lihat. Menerapkan manajemen beban kerja

  • Struktur kueri — Bagaimana kueri Anda ditulis mempengaruhi kinerjanya. Sebisa mungkin, tulis kueri untuk memproses dan mengembalikan data sesedikit mungkin yang memenuhi kebutuhan Anda. Untuk informasi selengkapnya, lihat Praktik terbaik Amazon Redshift untuk mendesain kueri.

  • Kompilasi kode — Amazon Redshift menghasilkan dan mengkompilasi kode untuk setiap rencana eksekusi kueri.

    Kode yang dikompilasi berjalan lebih cepat karena menghapus overhead menggunakan interpreter. Anda biasanya memiliki beberapa biaya overhead saat kode pertama kali dibuat dan dikompilasi. Akibatnya, kinerja kueri saat pertama kali Anda menjalankannya bisa menyesatkan. Biaya overhead mungkin sangat terlihat ketika Anda menjalankan kueri satu kali. Jalankan kueri untuk kedua kalinya untuk menentukan kinerja khasnya. Amazon Redshift menggunakan layanan kompilasi tanpa server untuk menskalakan kompilasi kueri di luar sumber daya komputasi klaster Amazon Redshift. Segmen kode yang dikompilasi di-cache secara lokal di cluster dan dalam cache yang hampir tidak terbatas. Cache ini tetap ada setelah cluster reboot. Eksekusi selanjutnya dari kueri yang sama berjalan lebih cepat karena mereka dapat melewati fase kompilasi.

    Cache tidak kompatibel di seluruh versi Amazon Redshift, sehingga cache kompilasi dimatikan dan kode dikompilasi ulang saat kueri dijalankan setelah pemutakhiran versi. Jika kueri Anda memiliki SLA yang ketat, kami sarankan Anda menjalankan segmen kueri pra-jalankan yang memindai data dari tabel klaster. Hal ini memungkinkan Amazon Redshift cache data tabel dasar, mengurangi waktu perencanaan untuk kueri setelah upgrade versi. Dengan menggunakan layanan kompilasi yang dapat diskalakan, Amazon Redshift dapat mengkompilasi kode secara paralel untuk memberikan kinerja yang cepat secara konsisten. Besarnya kecepatan beban kerja tergantung pada kompleksitas dan konkurensi kueri.