Bildirimler
Hepsini Temizle

toplu silme  

  RSS
Murat Soydan
(@MuratSoydan)
Üye

mssql de 30 milyon satırlık bir tablom var bunlardan farklı bir tablodaki kayıtlarla eşleşenleri silecegim.buda yaklasık 20 milyon kayıt yapıyor.


  While (select count(*) from deneme.dbo.table) > 0
Begin
delete Top(1000) deneme.dbo.table where exists(select id from deneme.dbo.table2


where table2.id=table.id) 


If @@rowcount = 0 break
End


böyle bir sorgu ile kayıtları 1000'er 1000'er silebiliyorum.fakat istedigim bunu daha hızlı yapabilmek.


mumkunatı varmıdır acaba?


database recovery model 'simple'


selamlar

Alıntı
Gönderildi : 19/12/2011 17:08
yselimakbulut
(@yselimakbulut)
Üye

Geç oldu Ama şöylede Yapabilirsin:

 

 create view v1 as (select top (10000) * from deneme.dbo.table2 where table2.id=table.id order by id)

While (@@rowcount > 0) 

Begin

delete from v1

End 

CevapAlıntı
Gönderildi : 20/12/2011 12:52
Paylaş: