Menghapus semua data dari subpartisi yang ditentukan dalam tabel partisi komposit. Operasi ini secara permanen menghapus data, tetapi mempertahankan struktur subpartisi. Pastikan bahwa data tersebut tidak lagi diperlukan atau telah dicadangkan sebelum menjalankan perintah ini.
Sinopsis
ALTER TABLE nama_tabel
TRUNCATE SUBPARTITION nama_subpartisi
[{DROP|REUSE} STORAGE]Parameter
Parameter | Diperlukan | Deskripsi | Contoh |
| Ya | Nama tabel target yang dipartisi komposit. |
|
| Ya | Nama subpartisi yang akan dipotong. |
|
| Tidak | Klausa ini diurai untuk kompatibilitas sintaksis Oracle tetapi diabaikan dan tidak berpengaruh pada penyimpanan. |
|
Catatan
Anda harus menjadi pemilik tabel atau memiliki izin
ALTERpada tabel.TRUNCATE SUBPARTITIONmendapatkan kunci eksklusif tingkat tabelAccessExclusiveLock. Kunci ini memblokir semua operasi Data Manipulation Language (DML) dan sebagian besar operasi Data Definition Language (DDL) pada tabel. Jalankan pernyataan ini selama jam non-puncak dan berikan waktu yang cukup untuk menyelesaikannya agar tidak memblokir operasi penting lainnya pada tabel.Sebagai operasi DDL,
TRUNCATE SUBPARTITIONsecara implisit melakukan commit transaksi saat ini. Setelah perintah dijalankan, data yang dihapus tidak dapat dipulihkan menggunakanROLLBACK. Cadangkan data Anda sebelum melakukan operasi ini.TRUNCATE SUBPARTITIONadalah operasi metadata yang mencakup penghapusan file. Ini dapat diselesaikan dalam hitungan detik, bahkan untuk tabel dengan ratusan juta catatan. Beban I/O, CPU, dan memori sangat rendah.
Contoh
Contoh ini menunjukkan cara menghapus data dari subpartisi untuk data pengguna wilayah Asia tahun 2022. Contoh ini menggunakan tabel pelanggan partisi komposit berdasarkan rentang tahun pendaftaran (RANGE) dan wilayah pengguna (LIST).
FAQ
P1: Apa perbedaan antara TRUNCATE SUBPARTITION dan DROP SUBPARTITION?
TRUNCATE SUBPARTITION menghapus data dari subpartisi tetapi mempertahankan definisinya. DROP SUBPARTITION menghapus definisi subpartisi dan datanya.
P2: Bisakah data dipulihkan setelah TRUNCATE SUBPARTITION dijalankan?
Tidak. TRUNCATE adalah operasi DDL yang secara permanen menghapus data. Secara default, itu tidak dicatat dalam log transaksi. Data tidak dapat dipulihkan menggunakan metode standar seperti rollback atau flashback.
P3: Apa perbedaan antara TRUNCATE SUBPARTITION dan DELETE FROM ... SUBPARTITION?
TRUNCATE SUBPARTITION adalah operasi DDL yang efisien yang langsung menghapus data dengan melepaskan blok data dan tidak dapat dibatalkan. DELETE adalah operasi DML yang menghapus data baris demi baris. Ini mencatat log, dapat dibatalkan, dan memicu pemicu hapus.
P4: Mengapa saya mendapatkan kesalahan "ORA-02149: relation ... does not exist"?
Kesalahan ini terjadi karena nama subpartisi tidak ada atau huruf besar/kecil dari nama yang ditentukan tidak sesuai dengan nama sebenarnya. Nama bersifat peka huruf besar/kecil. Untuk mengonfirmasi nama, lakukan pemeriksaan awal.
P5: Mengapa saya mendapatkan kesalahan "ORA-01031: insufficient privileges"?
Kesalahan ini terjadi karena pengguna yang menjalankan perintah tidak memiliki izin ALTER pada tabel target. Hubungi administrator basis data Anda untuk memberikan izin yang diperlukan.
Pernyataan SQL Terkait
ALTER TABLE DROP SUBPARTITION: Menghapus definisi subpartisi dan data yang dikandungnya.
ALTER TABLE TRUNCATE PARTITION: Menghapus data dari partisi primer dan semua subpartisinya.
ALTER TABLE ADD SUBPARTITION: Menambahkan subpartisi baru ke partisi primer yang ada.
ALTER TABLE SPLIT SUBPARTITION: Membagi satu subpartisi menjadi dua subpartisi.