[英]Automatically manage Sql Server database size
有2個.NET服務使用2個SQL Server數據庫。 我當前正在使用SQL Express,因此最大數據庫大小是一個問題。
當大小接近10GB限制(或某些記錄限制)時,我想自動刪除最早的X記錄量以釋放一些空間。
這不是生產環境,我真的不需要舊數據,我只想保持數據“新鮮”。
這應該在服務級別上完成嗎? 我可以修改我的服務以定期檢查已用空間並執行手動“清理”(是否是刪除,存檔等)。 我不確定如何在SQL級別上執行此操作。
謝謝
由於您使用的是SQL Express,因此需要按計划在服務級別上執行此操作。 首先,您需要從表中刪除要從中清除數據的行。 就像是:
delete BigOleTable where LoggedDate < dateadd(yy,-1,getdate())
將會淘汰一年以上的東西。
然后,您將需要收縮數據庫..因此,這取決於您的恢復模型。 如果您要進行完全恢復,則需要備份事務日志。 然后發布Tanner在上面提到的收縮數據庫。
您可以創建執行此操作或更好地使用SSIS的作業(請參閱: http : //technet.microsoft.com/zh-cn/library/ms181153%28v=sql.105%29.aspx )。
您可以使用此http://technet.microsoft.com/zh-cn/library/ms188776.aspx過程查詢所使用的空間,如果空間超過閾值,則可以刪除數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.