Perbezaan Antara Hapus dan Truncate

Anonim

Hapus vs Truncate

Kedua-dua arahan SQL (Struktur Query Language), Padam dan Truncate digunakan untuk menyingkirkan data yang disimpan dalam jadual dalam pangkalan data. Padam ialah pernyataan DML (Data Manipulation Language) dan menghapuskan beberapa atau semua baris meja. 'Di mana fasal' digunakan untuk menentukan baris yang diperlukan untuk dipadamkan, dan jika klausa Di mana tidak digunakan dengan pernyataan Padam, ia menghapuskan semua data dalam jadual. Truncate adalah pernyataan DDL (Data Definition Language), dan ia menghilangkan keseluruhan data dari jadual. Kedua-dua arahan ini tidak memusnahkan struktur meja dan rujukan kepada jadual, dan hanya data yang dikeluarkan apabila diperlukan.

Pernyataan Hapus

Pernyataan padam membolehkan pengguna untuk mengalih keluar data daripada jadual yang sedia ada dalam pangkalan data berdasarkan keadaan yang ditentukan, dan 'Where clause' digunakan untuk menentukan keadaan ini. Padam perintah dirujuk sebagai pelaksanaan log, kerana ia memadamkan hanya satu baris pada satu masa, dan menyimpan entri untuk setiap penghapusan baris dalam log transaksi. Jadi, penyebab ini menjadikan operasi lebih perlahan. Padam adalah pernyataan DML, dan oleh itu ia tidak secara automatik dilakukan semasa melaksanakan arahan. Oleh itu, Padam operasi boleh digulung semula untuk mengakses data sekali lagi, jika diperlukan. Selepas pelaksanaan perintah Hapus, ia perlu dilakukan atau dilancarkan semula untuk menyimpan perubahan secara kekal. Pernyataan penghapusan tidak mengalihkan struktur jadual jadual dari pangkalan data. Ia juga tidak menggambarkan ruang memori yang digunakan oleh meja.

Sintaks tipikal untuk perintah Hapus dinyatakan di bawah.

DELETE DARI

atau

DELETE FROM WHERE

Statement Truncate

Pernyataan Truncate membuang semua data dari jadual sedia ada dalam pangkalan data, tetapi ia mengekalkan struktur jadual yang sama, juga kekangan integriti, keistimewaan akses dan perhubungan ke jadual lain. Oleh itu, ia tidak dikehendaki mentakrifkan jadual itu lagi, dan struktur jadual lama boleh digunakan, jika pengguna ingin menggunakan semula jadual itu lagi. Truncate menghilangkan keseluruhan data dengan menguraikan halaman data yang digunakan untuk menyimpan data, dan hanya deallocations halaman ini disimpan dalam log transaksi. Oleh itu, arahan truncate menggunakan hanya sistem yang lebih sedikit dan sumber log transaksi untuk operasi, jadi lebih cepat daripada arahan lain yang berkaitan. Truncate adalah arahan DDL, jadi ia menggunakan komitmen auto sebelum dan selepas pelaksanaan kenyataan. Oleh itu, truncate tidak dapat menggulung kembali data dengan cara apapun. Ia mengeluarkan ruang ingatan yang digunakan oleh meja selepas pelaksanaannya. Tetapi kenyataan Truncate tidak dapat diterapkan pada jadual yang dirujuk oleh kekangan utama asing.

Berikut adalah sintaks biasa untuk pernyataan Truncate.

TRAKSI TABLE

Apakah perbezaan antara Padam dan Truncate?

1. Padam dan Truncate arahan mengeluarkan data daripada jadual yang ada dalam pangkalan data tanpa merosakkan struktur jadual atau rujukan lain ke jadual.

2. Bagaimanapun, perintah Hapus boleh digunakan untuk memadam baris tertentu hanya dalam jadual menggunakan keadaan yang bersesuaian, atau memadam semua baris tanpa sebarang syarat, sementara perintah Truncate hanya boleh digunakan untuk memadam keseluruhan data dalam jadual.

3. Padam adalah arahan DML, dan ia boleh melancarkan operasi jika diperlukan, tetapi Truncate adalah arahan DDL, jadi itu adalah kenyataan komit auto dan tidak boleh digulung semula dalam apa cara sekalipun. Oleh itu, penting untuk menggunakan arahan ini dengan berhati-hati dalam pengurusan pangkalan data.

4. Operasi truncate menggunakan sumber sistem yang lebih sedikit dan sumber log transaksi daripada operasi Padam, oleh itu, Truncate dianggap lebih cepat daripada Padam.

5. Juga, Padam tidak mengalihkan ruang yang digunakan oleh meja, sedangkan Truncate membebaskan ruang yang digunakan selepas pelaksanaan, sehingga Padam tidak efisien dalam hal menghapus seluruh data dari meja pangkalan data.

6. Walau bagaimanapun, Truncate tidak dibenarkan digunakan apabila jadual dirujuk oleh kekangan utama asing, dan dalam hal ini, perintah Hapus boleh digunakan dan bukan Truncate.

7. Akhirnya, kedua-dua perintah ini mempunyai kelebihan dan kelemahan dalam menerapkannya dalam Sistem Pengurusan Pangkalan Data dan pengguna harus sedar menggunakan arahan ini dengan sewajarnya untuk mencapai hasil yang baik.