一台伺服器上所有資料庫(也可能是部分資料庫)的大小是我們經常需要了解的,它不僅能讓我們知道目前資料庫使用磁盤的比例,
而且定期搜集這些資訊,還能了解資料庫一段時間的資料增量,更為常用的是在做資料遷移和更新時,友善規劃新伺服器磁盤容量。
這裡介紹三種統計資料庫大小的方法:
方法一:使用 sp_spaceused
說明:我們做了初步的資料篩選,去掉了系統資料庫和分發資料庫,此方法會生成以下腳本
我們直接運作,會得到相關資料庫大小的統計資訊:
我們需要的資料是打鈎的資訊(帶database_name),将這些資料拷貝出來,放到Excel中就能很友善的做統計了
從圖中可以看到,資料庫大小為:363MB;此方法比較麻煩,不過對2000和2000以下版本的資料庫是比較好的方法(沒有DMV);
方法二:sys.database_files 和sp_MSforeachdb相結合
說明:我們利用sp_MSforeachdb循環資料庫,再在每個資料庫中查詢sys.database_files 視圖來統計資料檔案的大小,得到的結果放入到一個表中,
然後再使用這個表來做統計;
如上圖所示,統計出來的資料庫大小也是:363MB。
方法三:sys.sysaltfiles與sys.databases結合統計
這種方法一次性搞定,統計出的資料庫大小也是:363MB,比較友善。
此文就介紹這三種方法,如果大家有更好的方法,歡迎讨論。