View a markdown version of this page

VAKUM - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

VAKUM

Re-sorts baris dan mengklaim kembali ruang di tabel tertentu atau semua tabel dalam database saat ini.

catatan

Hanya pengguna dengan izin tabel yang diperlukan yang dapat menyedot meja secara efektif. Jika VACUUM dijalankan tanpa izin tabel yang diperlukan, operasi selesai dengan sukses tetapi tidak berpengaruh. Untuk daftar izin tabel yang valid untuk menjalankan VACUUM secara efektif, lihat bagian Hak istimewa yang diperlukan berikut ini.

Amazon Redshift secara otomatis mengurutkan data dan menjalankan VACUUM DELETE di latar belakang. Ini mengurangi kebutuhan untuk menjalankan perintah VACUUM. Untuk informasi selengkapnya, lihat Meja penyedot debu.

Secara default, VACUUM melewatkan fase pengurutan untuk setiap tabel di mana lebih dari 95 persen baris tabel sudah diurutkan. Melewatkan fase pengurutan dapat secara signifikan meningkatkan kinerja VACUUM. Untuk mengubah ambang pengurutan atau hapus default untuk satu tabel, sertakan nama tabel dan parameter TO ambang batas PERSEN saat Anda menjalankan VACUUM.

Pengguna dapat mengakses tabel saat sedang disedot debu. Anda dapat melakukan kueri dan operasi penulisan saat tabel sedang disedot, tetapi ketika perintah bahasa manipulasi data (DML) dan vakum dijalankan secara bersamaan, keduanya mungkin membutuhkan waktu lebih lama. Jika Anda menjalankan pernyataan UPDATE dan DELETE selama vakum, kinerja sistem mungkin berkurang. VACUUM DELETE sementara memblokir operasi pembaruan dan penghapusan.

Amazon Redshift secara otomatis melakukan penyedot DELETE ONLY di latar belakang. Operasi vakum otomatis berhenti ketika pengguna menjalankan operasi bahasa definisi data (DDL), seperti ALTER TABLE.

catatan

Sintaks dan perilaku perintah Amazon Redshift VACUUM sangat berbeda dari operasi VACUUM PostgreSQL. Misalnya, operasi VACUUM default di Amazon Redshift adalah VACUUM FULL, yang mengambil kembali ruang disk dan mengurutkan ulang semua baris. Sebaliknya, operasi VACUUM default di PostgreSQL hanya mengambil kembali ruang dan membuatnya tersedia untuk digunakan kembali.

Untuk informasi selengkapnya, lihat Meja penyedot debu.

Hak istimewa yang diperlukan

Berikut ini adalah hak istimewa yang diperlukan untuk VACUUM:

  • Superuser

  • Pengguna dengan hak istimewa VACUUM

  • Pemilik meja

  • Pemilik database kepada siapa tabel dibagikan

Sintaksis

VACUUM [ FULL | SORT ONLY | DELETE ONLY | REINDEX | RECLUSTER ] [ [ table_name ] [ TO threshold PERCENT ] [ BOOST ] ]

Parameter

PENUH

Mengurutkan tabel yang ditentukan (atau semua tabel dalam database saat ini) dan mengklaim kembali ruang disk yang ditempati oleh baris yang ditandai untuk dihapus oleh operasi UPDATE dan DELETE sebelumnya. VACUUM FULL adalah default.

Vakum penuh tidak melakukan indeks ulang untuk tabel yang disisipkan. Untuk mengindeks ulang tabel yang disisipkan diikuti dengan vakum penuh, gunakan opsi. VACUUM REINDEX

Secara default, VACUUM FULL melewatkan fase pengurutan untuk setiap tabel yang sudah setidaknya 95 persen diurutkan. Jika VACUUM dapat melewati fase pengurutan, ia melakukan DELETE ONLY dan mengklaim kembali ruang dalam fase hapus sehingga setidaknya 95 persen dari baris yang tersisa tidak ditandai untuk dihapus.  

Jika ambang pengurutan tidak terpenuhi (misalnya, jika 90 persen baris diurutkan) dan VACUUM melakukan pengurutan penuh, maka VACUUM juga melakukan operasi penghapusan lengkap, memulihkan ruang dari 100 persen baris yang dihapus.

Anda dapat mengubah ambang vakum default hanya untuk satu tabel. Untuk mengubah ambang vakum default untuk satu tabel, sertakan nama tabel dan parameter TO ambang batas PERSEN.

HANYA MENYORTIR

Mengurutkan tabel yang ditentukan (atau semua tabel dalam database saat ini) tanpa mengambil kembali ruang yang dibebaskan oleh baris yang dihapus. Opsi ini berguna ketika mengambil kembali ruang disk tidak penting tetapi menyortir ulang baris baru itu penting. Vakum SORT ONLY mengurangi waktu yang telah berlalu untuk operasi vakum ketika wilayah yang tidak disortir tidak berisi sejumlah besar baris yang dihapus dan tidak menjangkau seluruh wilayah yang diurutkan. Aplikasi yang tidak memiliki kendala ruang disk tetapi bergantung pada pengoptimalan kueri yang terkait dengan menjaga baris tabel diurutkan dapat memperoleh manfaat dari vakum semacam ini.

Secara default, VACUUM SORT ONLY melewatkan tabel apa pun yang sudah setidaknya 95 persen diurutkan. Untuk mengubah ambang pengurutan default untuk satu tabel, sertakan nama tabel dan parameter TO ambang batas PERSEN saat Anda menjalankan VACUUM.

HAPUS SAJA

Amazon Redshift secara otomatis melakukan penyedot debu DELETE ONLY di latar belakang, jadi Anda jarang, jika pernah, perlu menjalankan vacuum DELETE ONLY.

VACUUM DELETE mengklaim kembali ruang disk yang ditempati oleh baris yang ditandai untuk dihapus oleh operasi UPDATE dan DELETE sebelumnya, dan memadatkan tabel untuk membebaskan ruang yang dikonsumsi. Operasi vakum DELETE ONLY tidak mengurutkan data tabel.

Opsi ini mengurangi waktu yang telah berlalu untuk operasi vakum ketika mengambil kembali ruang disk penting tetapi menyortir ulang baris baru tidak penting. Opsi ini juga dapat berguna ketika kinerja kueri Anda sudah optimal, dan menyortir ulang baris untuk mengoptimalkan kinerja kueri bukanlah suatu persyaratan.

Secara default, VACUUM DELETE ONLY mengklaim kembali ruang sehingga setidaknya 95 persen dari baris yang tersisa tidak ditandai untuk dihapus. Untuk mengubah ambang penghapusan default untuk satu tabel, sertakan nama tabel dan parameter TO ambang batas PERSEN saat Anda menjalankan VACUUM. 

Beberapa operasi, sepertiALTER TABLE APPEND, dapat menyebabkan tabel terfragmentasi. Saat Anda menggunakan DELETE ONLY klausa, operasi vakum mengambil kembali ruang dari tabel terfragmentasi. Nilai ambang yang sama sebesar 95 persen berlaku untuk operasi defragmentasi.

MENGINDEKS ULANG

Menganalisis distribusi nilai dalam kolom kunci pengurutan yang disisipkan, kemudian melakukan operasi VACUUM penuh. Jika REINDEX digunakan, nama tabel diperlukan.

VACUUM REINDEX membutuhkan waktu lebih lama secara signifikan daripada VACUUM FULL karena membuat izin tambahan untuk menganalisis kunci pengurutan yang disisipkan. Operasi pengurutan dan penggabungan dapat memakan waktu lebih lama untuk tabel yang disisipkan karena pengurutan yang disisipkan mungkin perlu mengatur ulang lebih banyak baris daripada pengurutan majemuk.

Jika operasi VACUUM REINDEX berakhir sebelum selesai, VACUUM berikutnya melanjutkan operasi pengindeksan ulang sebelum melakukan operasi vakum penuh.

VACUUM REINDEX tidak didukung dengan TO ambang PERSEN. 

PENUTUPAN

Mengurutkan bagian-bagian tabel yang tidak disortir. Bagian tabel yang sudah diurutkan berdasarkan urutan tabel otomatis dibiarkan utuh. Perintah ini tidak menggabungkan data yang baru diurutkan dengan wilayah yang diurutkan. Itu juga tidak merebut kembali semua ruang yang ditandai untuk dihapus. Ketika perintah ini selesai, tabel mungkin tidak tampak sepenuhnya diurutkan, seperti yang ditunjukkan oleh unsorted bidang di SVV_TABLE_INFO.

Kami menyarankan Anda menggunakan VACUUM RECLUSTER untuk tabel besar dengan konsumsi yang sering dan kueri yang hanya mengakses data terbaru.

VACUUM RECLUSTER tidak didukung dengan TO AMBANG PERSEN. Jika RECLUSTER digunakan, nama tabel diperlukan.

VACUUM RECLUSTER tidak didukung pada tabel dengan kunci pengurutan dan tabel yang disisipkan dengan SEMUA gaya distribusi.

table_name

Nama meja untuk menyedot debu. Jika Anda tidak menentukan nama tabel, operasi vakum berlaku untuk semua tabel dalam database saat ini. Anda dapat menentukan tabel permanen atau sementara yang dibuat pengguna. Perintah ini tidak berarti untuk objek lain, seperti tampilan dan tabel sistem.

Jika Anda menyertakan parameter TO ambang batas PERSEN, nama tabel diperlukan.

UNTUK AM BANG PERSEN

Klausa yang menentukan ambang batas di mana VACUUM melewatkan fase pengurutan dan ambang target untuk merebut kembali ruang dalam fase hapus. Am bang peng urutan adalah persentase dari total baris yang sudah dalam urutan urutan untuk tabel yang ditentukan sebelum menyedot debu.  Am bang penghapusan adalah persentase minimum dari total baris yang tidak ditandai untuk dihapus setelah menyedot debu.

Karena VACUUM mengurutkan ulang baris hanya jika persentase baris yang diurutkan dalam tabel kurang dari ambang pengurutan, Amazon Redshift sering dapat mengurangi waktu VACUUM secara signifikan. Demikian pula, ketika VACUUM tidak dibatasi untuk merebut kembali ruang dari 100 persen baris yang ditandai untuk dihapus, seringkali dapat melewati blok penulisan ulang yang hanya berisi beberapa baris yang dihapus.

Misalnya, jika Anda menentukan 75 untuk ambang batas, VACUUM melewatkan fase pengurutan jika 75 persen atau lebih dari baris tabel sudah dalam urutan urutan. Untuk fase hapus, VACUUMS menetapkan target untuk merebut kembali ruang disk sehingga setidaknya 75 persen baris tabel tidak ditandai untuk dihapus setelah vakum. Nilai ambang batas harus berupa bilangan bulat antara 0 dan 100. Defaultnya adalah 95. Jika Anda menentukan nilai 100, VACUUM selalu mengurutkan tabel kecuali sudah sepenuhnya diurutkan dan mengambil kembali ruang dari semua baris yang ditandai untuk dihapus. Jika Anda menentukan nilai 0, VACUUM tidak pernah mengurutkan tabel dan tidak pernah mengklaim kembali ruang.

Jika Anda menyertakan parameter TO ambang batas PERSEN, Anda juga harus menentukan nama tabel. Jika nama tabel dihilangkan, VACUUM gagal.

Anda tidak dapat menggunakan parameter TO ambang PERSEN dengan REINDEX.

MENINGKATKAN

Menjalankan perintah VACUUM dengan sumber daya tambahan, seperti memori dan ruang disk, saat tersedia. Dengan opsi BOOST, VACUUM beroperasi dalam satu jendela dan memblokir penghapusan dan pembaruan secara bersamaan selama operasi VACUUM. Berjalan dengan opsi BOOST bersaing untuk sumber daya sistem, yang mungkin memengaruhi kinerja kueri. Jalankan VACUUM BOOST saat beban pada sistem ringan, seperti selama operasi pemeliharaan.

Pertimbangkan hal berikut saat menggunakan opsi BOOST:

  • Ketika BOOST ditentukan, nilai table_name diperlukan.

  • BOOST tidak didukung dengan REINDEX.

  • BOOST diabaikan dengan DELETE ONLY.

Catatan penggunaan

Untuk sebagian besar aplikasi Amazon Redshift, penyedot debu penuh direkomendasikan. Untuk informasi selengkapnya, lihat Meja penyedot debu.

Sebelum menjalankan operasi vakum, perhatikan perilaku berikut:

  • Anda tidak dapat menjalankan VACUUM dalam blok transaksi (MULAI... AKHIR). Untuk informasi lebih lanjut tentang transaksi, lihatTingkat isolasi di Amazon Redshift.

  • Beberapa pertumbuhan meja mungkin terjadi ketika meja disedot. Perilaku ini diharapkan ketika tidak ada baris yang dihapus untuk mengklaim kembali atau urutan urutan baru tabel menghasilkan rasio kompresi data yang lebih rendah.

  • Selama operasi vakum, beberapa tingkat penurunan kinerja kueri diharapkan. Kinerja normal dilanjutkan segera setelah operasi vakum selesai.

  • Operasi penulisan bersamaan dilanjutkan selama operasi vakum, tetapi kami tidak menyarankan melakukan operasi penulisan saat menyedot debu. Lebih efisien untuk menyelesaikan operasi penulisan sebelum menjalankan vakum. Juga, data apa pun yang ditulis setelah operasi vakum dimulai tidak dapat disedot oleh operasi itu. Dalam hal ini, operasi vakum kedua diperlukan.

  • Operasi vakum mungkin tidak dapat dimulai jika operasi pemuatan atau penyisipan sudah berlangsung. Operasi vakum sementara memerlukan akses eksklusif ke tabel untuk memulai. Akses eksklusif ini diperlukan sebentar, sehingga operasi vakum tidak memblokir beban dan sisipan bersamaan untuk jangka waktu yang signifikan.

  • Operasi vakum dilewati ketika tidak ada pekerjaan yang harus dilakukan untuk tabel tertentu; Namun, ada beberapa overhead yang terkait dengan menemukan bahwa operasi dapat dilewati. Jika Anda tahu bahwa meja masih asli atau tidak memenuhi ambang vakum, jangan jalankan operasi vakum terhadapnya.

  • Operasi vakum DELETE ONLY pada tabel kecil mungkin tidak mengurangi jumlah blok yang digunakan untuk menyimpan data, terutama ketika tabel memiliki sejumlah besar kolom atau cluster menggunakan sejumlah besar irisan per node. Operasi vakum ini menambahkan satu blok per kolom per irisan untuk memperhitungkan sisipan bersamaan ke dalam tabel, dan ada potensi overhead ini lebih besar daripada pengurangan jumlah blok dari ruang disk yang direklamasi. Misalnya, jika tabel 10 kolom pada cluster 8-node menempati 1000 blok sebelum vakum, vakum tidak mengurangi jumlah blok aktual kecuali lebih dari 80 blok ruang disk direklamasi karena baris yang dihapus. (Setiap blok data menggunakan 1 MB.)

Operasi vakum otomatis berhenti jika salah satu dari kondisi berikut terpenuhi:

  • Pengguna menjalankan operasi bahasa definisi data (DDL), seperti ALTER TABLE, yang memerlukan kunci eksklusif pada meja yang sedang dikerjakan vakum otomatis.

  • Periode beban cluster yang tinggi.

Dukungan untuk VACUUM bersamaan

Amazon Redshift mendukung menjalankan beberapa transaksi vakum secara bersamaan di sesi yang berbeda dalam cluster atau kelompok kerja. Ini berarti Anda dapat mengeluarkan contoh yang berbeda dan beberapa dari semua mode vakum sekaligus, dengan setiap transaksi vakum pada meja yang unik. Dua operasi vakum tidak dapat bekerja pada satu meja secara bersamaan.

Pedoman untuk menjalankan vakum bersamaan

  • Saat menjalankan transaksi vakum bersamaan di sesi yang berbeda, Anda harus memantau sumber daya sistem, dan menghindari menjalankan terlalu banyak operasi vakum secara bersamaan.

  • Tingkat konkurensi yang disarankan tergantung pada jumlah ruang yang akan direklamasi, baik jumlah dan lebar baris yang akan diurutkan, ukuran gudang, dan ukuran beban kerja Anda yang berjalan bersamaan dengan operasi VACUUM.

  • Bergantung pada mode transaksi vakum, mulailah dengan dua operasi vakum bersamaan, dan tambahkan lebih banyak tergantung pada waktu berjalan dan beban sistemnya. Sama seperti kueri berat lainnya yang dikeluarkan oleh pengguna, operasi vakum dapat mulai mengantri jika Anda menjalankan terlalu banyak secara bersamaan ketika Amazon Redshift mencapai batas sumber daya sistem.

  • Jalankan beberapa operasi Vacuum BOOST dengan hati-hati. Menjalankan Vacuum dengan opsi BOOST bersaing untuk sumber daya sistem, yang mungkin memengaruhi kinerja kueri. Jalankan VACUUM BOOST saat beban pada sistem ringan, seperti selama operasi pemeliharaan.

  • Jika Anda tidak menentukan nama tabel, operasi vakum berlaku untuk semua tabel dalam database saat ini. Operasi vakum ini masih berjalan secara berurutan.

Contoh

Dapatkan kembali ruang dan database dan urutkan ulang baris di semua tabel berdasarkan ambang vakum default 95 persen.

vacuum;

Dapatkan kembali ruang dan urutkan ulang baris dalam tabel PENJUALAN berdasarkan ambang batas default 95 persen.

vacuum sales;

Selalu dapatkan kembali ruang dan urutkan ulang baris di tabel PENJUALAN.

vacuum sales to 100 percent;

Re-sort baris dalam tabel PENJUALAN hanya jika kurang dari 75 persen baris sudah diurutkan.

vacuum sort only sales to 75 percent;

Dapatkan kembali ruang di tabel SALES sedemikian rupa sehingga setidaknya 75 persen dari baris yang tersisa tidak ditandai untuk dihapus setelah vakum.

vacuum delete only sales to 75 percent;

Mengindeks ulang dan kemudian menyedot tabel LISTING.

vacuum reindex listing;

Perintah berikut mengembalikan kesalahan.

vacuum reindex listing to 75 percent;

Rekluster dan kemudian vakum tabel LISTING.

vacuum recluster listing;

Rekluster dan kemudian vakum tabel LISTING dengan opsi BOOST.

vacuum recluster listing boost;