Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
JELASKAN operator untuk paket kueri Amazon Redshift
Bagian ini menjelaskan secara singkat operator yang paling sering Anda lihat di EXPLAIN output.
Pemindaian berurutan
Operator pemindaian sekuensial (Seq Scan) menunjukkan pemindaian tabel. Seq Scan memindai setiap kolom dalam tabel secara berurutan dari awal hingga akhir dan mengevaluasi kendala kueri (dalam klausa) untuk setiap baris. WHERE
Bergabunglah dengan operator
Amazon Redshift memilih operator gabungan berdasarkan desain fisik tabel yang digabungkan, lokasi data yang diperlukan untuk bergabung, dan persyaratan spesifik kueri itu sendiri.
Loop Bersarang
Loop bersarang digunakan terutama untuk cross-join. Cross-join adalah gabungan tanpa kondisi gabungan yang menghasilkan produk Cartesian dari dua tabel. Loop bersarang biasanya dijalankan sebagai gabungan loop bersarang, yang merupakan jenis gabungan yang paling lambat. Jika loop bersarang hadir, Anda dapat melihat peristiwa peringatan loop bersarang di tampilan STL_ALERT_EVENT_LOG. Anda dapat menjalankan kueri berikut untuk mengidentifikasi kueri yang memiliki loop bersarang:
select q.query, trim(q.querytxt) as sql_query, q.starttime from stl_query q join stl_alert_event_log l on l.query = q.query and l.event like 'Nested Loop Join in the query plan%' order by q.starttime desc;
Hash bergabung dan hash
Hash join dan operator hash biasanya lebih cepat daripada nested loop join. Operator ini digunakan untuk sambungan dalam dan sambungan luar kiri dan kanan. Anda dapat menggunakan operator hash join dan hash saat menggabungkan tabel di mana kolom gabungan bukan kunci distribusi dan kunci sortir. Operator hash membuat tabel hash untuk tabel bagian dalam di join. Operator bergabung hash membaca tabel luar, hash kolom bergabung, dan menemukan kecocokan di tabel hash bagian dalam.
Gabung bergabung
Operator gabungan gabungan biasanya merupakan gabungan tercepat dan digunakan untuk sambungan dalam dan gabungan luar. Gabungan gabungan tidak digunakan untuk gabungan penuh. Anda dapat menggunakan gabungan gabungan saat menggabungkan tabel di mana kolom gabungan adalah kunci distribusi dan kunci pengurutan, dan ketika kurang dari 20 persen tabel yang bergabung tidak disortir. Operator gabungan gabungan membaca dua tabel yang diurutkan secara berurutan dan menemukan baris yang cocok. Untuk melihat persentase baris yang tidak disortir, kueri tabel sistem SVV_TABLE_INFO.
Operator agregat
Paket kueri menggunakan operator berikut dalam kueri yang melibatkan fungsi dan GROUP BY operasi agregat:
-
Agregat — Operator untuk fungsi agregat skalar seperti dan
AVGSUM -
HashAggregate— Operator untuk fungsi agregat dikelompokkan yang tidak disortir
-
GroupAggregate— Operator untuk fungsi agregat dikelompokkan yang diurutkan
Mengurutkan operator
Paket kueri menggunakan operator berikut ketika kueri harus mengurutkan atau menggabungkan kumpulan hasil:
-
Urutkan - Mengevaluasi
ORDER BYklausa dan operasi pengurutan lainnya, seperti jenis yang diperlukan olehUNIONkueri dan gabungan,SELECT DISTINCTkueri, dan fungsi jendela -
Merge — Menghasilkan hasil akhir yang diurutkan menurut hasil diurutkan menengah yang berasal dari operasi paralel
UNION, INTERSECT, dan KECUALI operator
Paket kueri menggunakan operator berikut untuk kueri yang melibatkan operasi set denganUNION,INTERSECT, danEXCEPT:
-
Subquery - Digunakan untuk menjalankan
UNIONquery -
Hash Intersect Distinct - Digunakan untuk menjalankan query
INTERSECT -
SetOp Kecuali - Digunakan untuk menjalankan
EXCEPT(atauMINUS) kueri
Operator lainnya
Operator berikut juga sering muncul dalam EXPLAIN output untuk kueri rutin:
-
Unik - Menghapus duplikat untuk
SELECT DISTINCTkueri dan kueriUNION -
Batas — Memproses
LIMITklausa -
Jendela - Menjalankan fungsi jendela
-
Hasil - Menjalankan fungsi skalar yang tidak melibatkan akses tabel apa pun
-
Subplan - Digunakan untuk subquery tertentu
-
Jaringan - Mengirim hasil antara ke node pemimpin untuk diproses lebih lanjut
-
Terwujud - Menyimpan baris untuk input ke gabungan loop bersarang dan beberapa gabungan gabungan