Forum

SQL Büyük...
 
Bildirimler
Hepsini Temizle

SQL Büyük Tablo Verilerini Silme

Raşit KURT
(@RasitKURT)
Üye

Merhaba 

SQL server içerisinde yaklaşık 3 milyar satırlık bir tablom var ve belli bir tarihten öncesini silmek istiyorum. 

 

Silmeye kalktığım her sorgu ram i şişiriyor(32 GB)ve sorguyu tamamlamadan servisi restart etmek zorunda kalıyorum.

bunun için ne yapabilirim önerisi olan varmı.

Teşekkürler

Alıntı
Konu başlatıcı Gönderildi : 12/02/2018 02:25

Buğra PARLAYAN
(@bugraparlayan)
Saygın Üye Forum Yöneticisi

Selam,

Bir döngü kullanarak silmeyi denediniz mi, 

Örneğin,

SELECT 1
WHILE @@ROWCOUNT > 0
BEGIN
DELETE TOP (5000)
FROM Table
END

Oracle ACE Associate - Türkiye Hayat & Emeklilik

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

CevapAlıntı
Gönderildi : 12/02/2018 02:39

Turan COŞKUN
(@turancoskun)
Tecrübeli Üye Forum Yöneticisi

merhaba,

benzer talep için referans adreste, alternatif yollar mevcut.

tercihinizi job olarak tanımlayıp, zamanlarsanız, yönetimi daha kolay olacaktır.

https://www.mssqltips.com/sqlservertip/3566/deleting-historical-data-from-a-large-highly-concurrent-sql-server-database-table/

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

CevapAlıntı
Gönderildi : 12/02/2018 04:14

Halit GÖKTAŞ
(@HalitGOKTAS)
Üye

SELECT * INTO  YENITABLO FROM ASILTABLO WHERE TARIH>='01.01.2017'

Sorgusu ile silmek istemediğiniz kısmın kopyasını yeni tabloya hızlıca aktarabilirsiniz.

Eski tablo ismini değiştirip indexleri sildikten sonra, yeni tablo ismini düzeltip indexleri oluşturarak çözülebileceğini düşünüyorum.

 

 

 

CevapAlıntı
Gönderildi : 02/03/2018 03:41

Paylaş: