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