Sql Server Çok Sayıda Satırı Silme

Bazen çok sayıda satırı silmeniz gerekebilir. “Çok sayıda” biraz göreceli bir kavram olduğu için izah etmekte fayda var. Burada bahsedilen “çok sayıda” benim karşılaştığım 100 milyon satır gibi durumlar olabileceği gibi 10 bin satır gibi de olabilir. 10 bin satır altında böyle bir işleme bence gerek yok. Yalnız bazı istisnai durumlarda 10 binlik silme işleminde de gerekebilir. Örneğin çok fazla trigger a sahip olan tablolardan silme işlemi yaparken.

Ben genelde bu tür işlemleri sqlserver görevi oluşturarak ve sistemin en az yoğun olduğu saatlere zamanlayarak gerçekleştiriyorum. Size de tavsiyem budur. Yalnız burada dikkat edilmesi gereken bir konu daha mevcut, o da bu adreste izah edilmekte.

 

 DECLARE @RowsDeleted INTEGER
 DECLARE @RowPerDeletion INTEGER
 DECLARE @Yil INTEGER
 
 SET @RowPerDeletion = 10000
 SET @RowsDeleted = 1
 
 WHILE (@RowsDeleted > 0)
 BEGIN
 DELETE TOP(@RowPerDeletion)  — isterseniz filtreleme de yapabilirsiniz
 SET @RowsDeleted = @@ROWCOUNT
 END

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir