VACUUM - Amazon Redshift

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

VACUUM

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 agar dapat dijalankan secara efektifVACUUM, lihat bagian Hak istimewa yang diperlukan berikut.

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

Secara default, VACUUM lewati fase pengurutan untuk tabel mana pun di mana lebih dari 95 persen baris tabel sudah diurutkan. Melewatkan fase pengurutan dapat secara signifikan meningkatkan VACUUM kinerja. Untuk mengubah ambang batas pengurutan atau penghapusan default untuk satu tabel, sertakan nama tabel dan PERCENT parameter ambang TO saat Anda menjalankanVACUUM.

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

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

catatan

Sintaks dan perilaku VACUUM perintah Amazon Redshift sangat berbeda dari operasi Postgre. SQL VACUUM Misalnya, VACUUM operasi default di Amazon Redshift adalah VACUUMFULL, yang merebut kembali ruang disk dan menyortir ulang semua baris. Sebaliknya, VACUUM operasi default di Postgre SQL 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 untukVACUUM:

  • Superuser

  • Pengguna dengan hak VACUUM istimewa

  • Pemilik meja

  • Pemilik basis data yang tabel dibagikan

Sintaks

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

Parameter

FULL

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 sebelumnya dan operasi. UPDATE DELETE VACUUMFULLadalah 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 lewati 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 PERCENT parameter ambang TO.

SORT ONLY

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. SORTONLYVakum 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 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 lewati tabel apa pun yang sudah setidaknya 95 persen diurutkan. Untuk mengubah ambang batas pengurutan default untuk satu tabel, sertakan nama tabel dan PERCENT parameter ambang TO saat Anda menjalankanVACUUM.

DELETE ONLY

Amazon Redshift secara otomatis melakukan DELETE ONLY vakum di latar belakang, jadi Anda jarang, jika pernah, perlu menjalankan ruang hampa DELETEONLY.

A VACUUM DELETE merebut kembali ruang disk yang ditempati oleh baris yang ditandai untuk dihapus oleh sebelumnya UPDATE dan DELETE operasi, dan memadatkan tabel untuk membebaskan ruang yang dikonsumsi. Operasi DELETE ONLY vakum 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 sedemikian rupa 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 PERCENT parameter ambang TO saat Anda menjalankanVACUUM. 

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

REINDEXtablename

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

VACUUMREINDEXmembutuhkan waktu yang jauh lebih lama daripada VACUUM FULL karena itu 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 VACUUM REINDEX operasi berakhir sebelum selesai, operasi berikutnya VACUUM melanjutkan operasi indeks ulang sebelum melakukan operasi vakum penuh.

VACUUMREINDEXtidak didukung dengan ambang TOPERCENT. 

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 ini tidak berarti untuk objek lain, seperti tampilan dan tabel sistem.

Jika Anda menyertakan PERCENT parameter ambang TO, nama tabel diperlukan.

RECLUSTERtablename

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 diurutkan sepenuhnya, 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.

VACUUMRECLUSTERtidak didukung dengan ambang TOPERCENT. Jika RECLUSTER digunakan, nama tabel diperlukan.

VACUUMRECLUSTERtidak didukung pada tabel dengan kunci pengurutan yang disisipkan dan tabel dengan gaya ALL distribusi.

table_name

Nama meja untuk menyedot debu. Anda dapat menentukan tabel buatan pengguna permanen atau sementara. Perintah ini tidak berarti untuk objek lain, seperti tampilan dan tabel sistem.

Untuk ambang PERCENT

Klausa yang menentukan ambang batas di atas yang 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 mengurutkan ulang baris hanya ketika persentase baris yang diurutkan dalam tabel kurang dari ambang pengurutan, Amazon Redshift seringkali VACUUM dapat mengurangi waktu 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 lewati fase pengurutan jika 75 persen atau lebih baris tabel sudah dalam urutan pengurutan. Untuk fase delete, VACUUMS tetapkan target reklamasi ruang disk sedemikian rupa 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 urutkan tabel kecuali sudah sepenuhnya diurutkan dan merebut kembali ruang dari semua baris yang ditandai untuk dihapus. Jika Anda menentukan nilai 0, VACUUM jangan pernah mengurutkan tabel dan tidak pernah merebut kembali spasi.

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

Anda tidak dapat menggunakan PERCENT parameter ambang TO denganREINDEX.

BOOST

Menjalankan VACUUM perintah dengan sumber daya tambahan, seperti memori dan ruang disk, karena mereka tersedia. Dengan BOOST opsi ini, VACUUM beroperasi dalam satu jendela dan memblokir penghapusan dan pembaruan bersamaan selama operasi. VACUUM Berjalan dengan BOOST opsi 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 BOOST opsi:

  • Kapan BOOST ditentukan, nilai table_name diperlukan.

  • BOOSTtidak didukung denganREINDEX.

  • BOOSTdiabaikan dengan DELETEONLY.

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 (BEGIN... END). Untuk informasi lebih lanjut tentang transaksi, lihatIsolasi yang dapat diserialisasi.

  • Anda dapat menjalankan hanya satu VACUUM perintah 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 DELETE ONLY vakum 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 melebihi pengurangan jumlah blok dari ruang disk reklamasi. 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 sejenak jika salah satu dari kondisi berikut terpenuhi:

  • Seorang pengguna menjalankan operasi bahasa definisi data (DDL), seperti ALTERTABLE, yang memerlukan kunci eksklusif pada tabel yang saat ini sedang dikerjakan oleh vakum otomatis.

  • Seorang pengguna memicu VACUUM pada tabel apa pun di cluster (hanya satu yang VACUUM 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;

Rebut kembali spasi dan urutkan ulang baris dalam SALES tabel berdasarkan ambang batas 95 persen default.

vacuum sales;

Selalu merebut kembali ruang dan mengurutkan kembali baris dalam tabel. SALES

vacuum sales to 100 percent;

Urutkan ulang baris dalam SALES tabel hanya jika kurang dari 75 persen baris sudah diurutkan.

vacuum sort only sales to 75 percent;

Dapatkan kembali ruang dalam SALES tabel 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 LISTING tabel.

vacuum reindex listing;

Perintah berikut mengembalikan kesalahan.

vacuum reindex listing to 75 percent;

Recluster dan kemudian vakum meja. LISTING

vacuum recluster listing;

Recluster dan kemudian vakum LISTING meja dengan opsi. BOOST

vacuum recluster listing boost;