Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
VAKUM
Mengurutkan ulang baris dan merebut kembali ruang baik dalam tabel tertentu atau semua tabel dalam database saat ini.
catatan
Hanya pengguna dengan izin tabel yang diperlukan yang dapat secara efektif menyedot tabel. 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.
Amazon Redshift secara otomatis mengurutkan data dan menjalankan VACUUM DELETE di latar belakang. Ini mengurangi kebutuhan untuk menjalankan perintah VACUUM. Untuk informasi selengkapnya, lihat Tabel penyedot debu.
Secara default, VACUUM melewatkan fase pengurutan untuk tabel mana pun di mana lebih dari 95 persen baris tabel sudah diurutkan. Melewatkan fase pengurutan dapat secara signifikan meningkatkan kinerja VACUUM. Untuk mengubah ambang batas pengurutan atau penghapusan default untuk satu tabel, sertakan nama tabel dan parameter TO threshold PERCENT saat Anda menjalankan VACUUM.
Pengguna dapat mengakses tabel saat sedang disedot. Anda dapat melakukan kueri dan menulis operasi saat tabel sedang disedot, tetapi ketika perintah bahasa manipulasi data (DHTML) dan vakum berjalan secara bersamaan, keduanya mungkin membutuhkan waktu lebih lama. Jika Anda menjalankan pernyataan UPDATE dan DELETE selama vakum, kinerja sistem mungkin berkurang. VACUUM DELETE memblokir sementara operasi pembaruan dan penghapusan.
Amazon Redshift secara otomatis melakukan vakum DELETE ONLY di latar belakang. Operasi vakum otomatis berhenti saat 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 merebut kembali ruang disk dan menyortir ulang semua baris. Sebaliknya, operasi VACUUM default di PostgreSQL hanya merebut kembali ruang dan membuatnya tersedia untuk digunakan kembali.
Untuk informasi selengkapnya, lihat Tabel penyedot debu.
Hak istimewa yang diperlukan
Berikut ini adalah hak istimewa yang diperlukan untuk VACUUM:
Superuser
Pengguna dengan hak istimewa VACUUM
Pemilik meja
Pemilik basis data yang tabel dibagikan
Sintaks
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 merebut 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 pengindeksan 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 tabel apa pun yang sudah setidaknya 95 persen diurutkan. Jika VACUUM dapat melewati fase pengurutan, ia melakukan DELETE ONLY dan merebut kembali ruang dalam fase penghapusan 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 itu 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 batas vakum default untuk satu tabel, sertakan nama tabel dan parameter TO threshold PERCENT.
- URUTKAN SAJA
-
Mengurutkan tabel yang ditentukan (atau semua tabel dalam database saat ini) tanpa merebut kembali ruang yang dibebaskan oleh baris yang dihapus. Opsi ini berguna saat merebut kembali ruang disk tidak penting tetapi menyortir ulang baris baru itu penting. Vakum SORT ONLY mengurangi waktu yang telah berlalu untuk operasi vakum saat wilayah yang tidak disortir tidak berisi sejumlah besar baris yang dihapus dan tidak menjangkau seluruh wilayah yang diurutkan. Aplikasi yang tidak memiliki batasan ruang disk tetapi bergantung pada pengoptimalan kueri yang terkait dengan menjaga baris tabel diurutkan dapat memperoleh manfaat dari jenis vakum ini.
Secara default, VACUUM SORT ONLY melewatkan tabel apa pun yang sudah setidaknya 95 persen diurutkan. Untuk mengubah ambang batas pengurutan default untuk satu tabel, sertakan nama tabel dan parameter TO threshold PERCENT saat Anda menjalankan VACUUM.
- HAPUS SAJA
-
Amazon Redshift secara otomatis melakukan vakum DELETE ONLY di latar belakang, jadi Anda jarang, jika pernah, perlu menjalankan DELETE ONLY vacuum.
VACUUM DELETE merebut 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 saat merebut kembali ruang disk adalah penting tetapi menyortir ulang baris baru tidak penting. Opsi ini juga dapat berguna ketika kinerja kueri Anda sudah optimal, dan mengurutkan ulang baris untuk mengoptimalkan kinerja kueri bukanlah persyaratan.
Secara default, VACUUM DELETE ONLY merebut kembali ruang sehingga setidaknya 95 persen dari baris yang tersisa tidak ditandai untuk dihapus. Untuk mengubah ambang batas penghapusan default untuk satu tabel, sertakan nama tabel dan parameter TO threshold PERCENT saat Anda menjalankan VACUUM.
Beberapa operasi, seperti
ALTER TABLE APPEND
, dapat menyebabkan tabel terfragmentasi. Bila Anda menggunakanDELETE ONLY
klausa operasi vakum merebut kembali ruang dari tabel terfragmentasi. Nilai ambang batas yang sama sebesar 95 persen berlaku untuk operasi defragmentasi. - REINDEX nama tablet
-
Menganalisis distribusi nilai dalam kolom kunci sortir yang disisipkan, kemudian melakukan operasi VACUUM penuh. Jika REINDEX digunakan, nama tabel diperlukan.
VACUUM REINDEX membutuhkan waktu yang jauh lebih lama daripada VACUUM FULL karena membuat pass tambahan untuk menganalisis kunci sortir 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 indeks ulang sebelum melakukan operasi vakum penuh.
VACUUM REINDEX tidak didukung dengan TO threshold PERCENT.
- 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 buatan pengguna permanen atau sementara. Perintah tidak berarti untuk objek lain, seperti tampilan dan tabel sistem.
Jika Anda menyertakan parameter TO threshold PERCENT, nama tabel diperlukan.
- Nama meja RECLUSTER
-
Mengurutkan bagian-bagian tabel yang tidak disortir. Bagian dari tabel yang sudah diurutkan berdasarkan jenis 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 seringnya konsumsi dan kueri yang hanya mengakses data terbaru.
VACUUM RECLUSTER tidak didukung dengan TO threshold PERCENT. Jika RECLUSTER digunakan, nama tabel diperlukan.
VACUUM RECLUSTER tidak didukung pada tabel dengan tombol sortir dan tabel yang disisipkan dengan gaya distribusi SEMUA.
- table_name
-
Nama meja untuk menyedot debu. Anda dapat menentukan tabel buatan pengguna permanen atau sementara. Perintah tidak berarti untuk objek lain, seperti tampilan dan tabel sistem.
- Untuk ambang PERSENTASE
-
Klausa yang menentukan ambang batas di mana VACUUM melewati fase pengurutan dan ambang target untuk merebut kembali ruang dalam fase hapus. Ambang batas pengurutan adalah persentase dari total baris yang sudah dalam urutan untuk tabel yang ditentukan sebelum menyedot debu. Ambang batas penghapusan adalah persentase minimum dari total baris yang tidak ditandai untuk dihapus setelah menyedot debu.
Karena VACUUM menyortir ulang baris hanya ketika persentase baris yang diurutkan dalam tabel kurang dari ambang pengurutan, Amazon Redshift seringkali dapat mengurangi waktu VACUUM secara signifikan. Demikian pula, ketika VACUUM tidak dibatasi untuk merebut kembali ruang dari 100 persen baris yang ditandai untuk dihapus, sering kali 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 pengurutan. Untuk fase penghapusan, VACUUMS menetapkan target reklamasi ruang disk sehingga setidaknya 75 persen dari 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 merebut kembali ruang dari semua baris yang ditandai untuk dihapus. Jika Anda menentukan nilai 0, VACUUM tidak pernah mengurutkan tabel dan tidak pernah merebut kembali ruang.
Jika Anda menyertakan parameter TO threshold PERCENT, Anda juga harus menentukan nama tabel. Jika nama tabel dihilangkan, VACUUM gagal.
Anda tidak dapat menggunakan parameter TO threshold PERCENT dengan REINDEX.
- DORONGAN
-
Menjalankan perintah VACUUM dengan sumber daya tambahan, seperti memori dan ruang disk, karena tersedia. Dengan opsi BOOST, VACUUM beroperasi dalam satu jendela dan memblokir penghapusan dan pembaruan 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, vakum penuh direkomendasikan. Untuk informasi selengkapnya, lihat Tabel 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, lihatIsolasi yang dapat diserialisasi.
-
Anda dapat menjalankan hanya satu perintah VACUUM pada cluster pada waktu tertentu. Jika Anda mencoba menjalankan beberapa operasi vakum secara bersamaan, Amazon Redshift mengembalikan kesalahan.
-
Beberapa jumlah pertumbuhan tabel mungkin terjadi ketika tabel disedot. Perilaku ini diharapkan ketika tidak ada baris yang dihapus untuk diambil kembali atau 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 tulis 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 beban 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 penemuan bahwa operasi dapat dilewati. Jika Anda tahu bahwa meja itu murni atau tidak memenuhi ambang vakum, jangan menjalankan 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 reklamasi. Misalnya, jika tabel 10 kolom pada cluster 8-node menempati 1000 blok sebelum ruang hampa, 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 sejenak jika salah satu dari kondisi berikut terpenuhi:
-
Seorang pengguna menjalankan operasi bahasa definisi data (DDL), seperti ALTER TABLE, yang memerlukan kunci eksklusif pada tabel yang saat ini sedang dikerjakan oleh vakum otomatis.
-
Seorang pengguna memicu VACUUM pada tabel mana pun di cluster (hanya satu VACUUM yang dapat berjalan pada satu waktu).
-
Periode beban cluster yang tinggi.
Contoh
Dapatkan kembali ruang dan database dan urutkan ulang baris di semua tabel berdasarkan ambang batas vakum 95 persen default.
vacuum;
Dapatkan kembali ruang dan urutkan ulang baris dalam tabel PENJUALAN berdasarkan ambang batas 95 persen default.
vacuum sales;
Selalu merebut kembali ruang dan mengurutkan kembali baris di tabel PENJUALAN.
vacuum sales to 100 percent;
Urutkan ulang baris dalam tabel PENJUALAN hanya jika kurang dari 75 persen baris sudah diurutkan.
vacuum sort only sales to 75 percent;
Dapatkan kembali ruang dalam tabel PENJUALAN sehingga setidaknya 75 persen dari baris yang tersisa tidak ditandai untuk dihapus setelah vakum.
vacuum delete only sales to 75 percent;
Index ulang dan kemudian vakum tabel LISTING.
vacuum reindex listing;
Perintah berikut mengembalikan kesalahan.
vacuum reindex listing to 75 percent;
Recluster dan kemudian vakum tabel LISTING.
vacuum recluster listing;
Recluster dan kemudian vakum tabel LISTING dengan opsi BOOST.
vacuum recluster listing boost;