Skip to main content

SQL Delete & Update Best Practice

Dear Pembaca setia,
Kali ini penulis hendak membagikan pendekatan penggunaan di SQL Query untuk Update dan Delete data dalam jumlah yang sangat banyak (jutaan row per tabel). kita hendak melakukan Delete atau Update tabel dalam jumlah yang sangat banyak, maka
tabel tersebut akan di-reserved oleh sistem, dan tidak dapat dilakukan beberapa aktifitas (read, update, bahkan delete).
Reservasi tabel ini terjadi dalam waktu yang sangat lama, selama waktu untuk men-Delete ataupun meng-Update tabel, bisa bermenit-menit, berjam-jam. Untuk itu, pendekatan kali ini adalah melakukan Update ataupun Delete dengan membagi waktu eksekusi menjadi bagian yang kecil-kecil, sekitar 1000-10000 row per eksekusi.
Langsung saja kita perhatikan contohnya:

Update Best Practice

Declare @Rowcount INT = 1;

WHILE (@Rowcount > 0) 
BEGIN
UPDATE TOP (10000) --<-- define Batch Size in TOP Clause
a
SET
a.[New_Value] = a.[Old_Value]
FROM
[table] a
WHERE
a.[New_Value] <> a.[Old_Value]

SET @Rowcount = @@ROWCOUNT

CHECKPOINT;   --<-- to commit the changes with each batch

END
sumber di sini

Delete Best Practice

Declare @Rowcount INT = 1;

WHILE (@Rowcount > 0)
BEGIN
   DELETE TOP(2000)
   FROM Foo
   WHERE <predicate>

   SET @Rowcount = @@ROWCOUNT
END

Demikian sesi tips SQL server kali ini. Bila ada kesempatan lagi akan terus kami sampaikan lewat blog ini.
Terima kasih sudah mampir di blog kami.

Salam,

Comments

Popular posts from this blog

Pengaturan TP-LINK TL-MR3020 sebagai WiFi Client

Dear Pembaca setia, Kali ini penulis ingin berbagi cerita, bagaimana sebuah devices (PC atau yang lain) yang tidak memiliki modul Wireless, dan hanya memiliki port LAN (RJ45), dapat terkoneksi ke jaringan dengan bantuan Wireless Router TP-Link TL-MR3020. Caranya adalah dengan

Install Ghost Blog di Raspberry Pi

Dear Pembaca Setia, Kali ini Penulis hendak berbagi pengalaman terkait instalasi Ghost Blog di Raspberry Pi. Penulis menggunakan Raspberry Pi 4b saat instalasi, namun Raspberry Pi 3b seharusnya sudah cukup. Tutorial kali ini menggunakan Docker untuk instalasi Ghost,