MSSQL de Biriken Mailleri Temizlemek

MSSQL  de alert mekanizması kurdunuz ve bir sorun oldu mailleriniz beklediğinizden fazla atıyor  ya da msdb veritabanınız bundan dolayı boyutu artıyor ya da farklı bir sebepten dolayı atılan mail historylerini silmek istediniz. MSSQL de bunun için  msdb.dbo.sysmail_delete_mailitems_sp  prosedürün faydalanabiliriz.
Bu prosedürü kullanmadan önce biraz prosedür hakkında bilgi vermek istedim. Bu makaleye geçmeden önce MSSQL Mail Loglarını İncelemek isimli makaleyi okumanızı tavsiye ederim.

select * from msdb..sysmail_allitems de belirtilen sent_status kolonunda belirtilen kayıtlar ile eşleşmesi gerekmektedir.


 @sent_status parametresi:  Bu parametre  select * from msdb..sysmail_allitems de belirtilen sent_status kolonunda belirtilen kayıtlar ile eşleşmesi gerekmektedir.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp  
    @sent_status = 'sent' ; 
GO 

 

@sent_before parametresi: Bu parametre  select * from msdb..sysmail_allitems de belirtilen send_request_date kolonunda belirtilen kayıtlar ile eşleşmesi gerekmektedir.

Aşağıdaki komut yardımı  ile kuyrukta biriken mailleri silebilirsiniz.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp  
    @sent_status = 'retrying' ; 
GO 

 

Loading