Sunday - May 18, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 10 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Tips MySQL: Menggabungkan String dengan Fungsi CONCAT() dan CONCAT_WS() (1815)

»

Tips PHP: Membuat Random Password (2518)

»

Contoh Membuat Laporan Pada Borland Delphi dengan Quick Report (9714)

»

Teknologi Hardisk - Bagian 2 (7893)

»

Tips MySQL: Memformat Output pada Database MySQL (1407)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Tips SQL Server: Perintah DELETE dan TRUNCATE, Apa Bedanya?

Author: Ariesa Rahardjo
Published: March 21, 2006
Visits: 1454 - Category:
SQL Server
 
     
 

Apa perbedaan antara perintah DELETE dan TRUNCATE? Apa salah satu ada yang lebih cepat dari yang lainnya? Perintah DELETE akan melakukan log terhadap data untuk masing-masing row yang dihapus dan ini akan mengakibatkan transaction log Anda bisa membengkak ukurannya. Namun demikian, jika Anda menjalankan database Anda dalam mode full recovery, maka hal tersebut wajib dilakukan karena akan memudahkan SQL Server untuk melakukan recovery jika sewaktu-waktu terjadi bencana pada database Anda. Tetapi kita bisa ambil dari fakta di atas bahwa setiap data akan di log ke dalam transaction log dan itu sudah cukup menjelaskan bahwa perintah DELETE bisa menjadi lambat.

Sementara itu, perintah TRUNCATE lebih cepat daripada DELETE dan ini dilihat dari cara perintah TRUNCATE dalam "menghapus" data. Pada kenyataannya, perintah TRUNCATE tidak menghapus data, tetapi dia akan men-dealokasi semua data page dan menghapus pointer yang menuju ke indexnya. Data sebenarnya masih ada dan baru akan hilang apabila lokasinya ditumpangi data baru atau bila Anda melakukan database shrinking. Aktivitas dari perintah TRUNCATE tersebut tidak memerlukan resource yang besar dan maka dari itu perintah ini bisa berjalan dengan sangat cepat. Adalah pendapat yang salah pula jika perintah TRUNCATE itu tidak di-log. Proses dealokasi data page tadi sebenarnya juga direkam ke dalam transaction log file. Menurut Books OnLine SQL Server menyatakan bahwa operasi TRUNCATE merupakan operasi yang sifatnya "minimally logged operation". Anda dapat menggunakan perintah TRUNCATE di dalam suatu transaction database, dan ketika transaction ini Anda roll-back, maka data page akan dialokasikan kembali dan database kembali ke keadaan seperti sebelum perintah TRUNCATE dijalankan.

Beberapa keterbatasan dari perintah TRUNCATE adalah:

  • Anda harus bertindak sebagai db_owner, ddl_admin atau owner dari tabel agar bisa menjalankan perintah TRUNCATE ini.
  • TRUNCATE tidak akan jalan pada tabel yang direferensikan oleh satu atau lebih FOREIGN KEY constraint.

Jika TRUNCATE lebih cepat daripada DELETE maka mengapa kita harus menggunakan DELETE? Tunggu dulu. TRUNCATE merupakan pendekatan "all-or-nothing" dalam proses menghapus data. Anda tentu saja tidak bisa menentukan kriteria pada data tertentu yang hendak dihapus jika menggunakan perintah TRUNCATE. Pilihannya hanya ada dua, hapus semua atau tidak ada yang dihapus sama sekali. OK, sekarang pilihan tinggal di tangan Anda.

Referensi

  • sql-server-performance.com

Demikian tulisan singkat mengenai perbedaan antara perintah DELETE dan TRUNCATE pada SQL Server. Semoga berguna bagi Anda semuanya. Jika ada komentar atau saran bisa dikirimkan melalui ariesa.rahardjo@gmail.com. Untuk membaca tulisan menarik lainnya silakan menuju ke situs Sony AK Knowledge Center dengan alamat di www.sony-ak.com.

Terima kasih.




 Recommended articles
 

»

Tips PHP: Membaca Isi File Teks ke dalam String dengan Fungsi file_get_contents() (3705)

»

Trik Shutdown/Restart Otomatis Pada Windows 9x/Me Tanpa Menggunakan Software (5111)

»

Mendapatkan Informasi Mengenai Memori Komputer (RAM) Dengan Visual Basic (5400)

»

Apa Beda "beta" Testing dan "alpha" Testing? (2320)

»

Mengetahui PSN (Processor Serial Number) (3356)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com