我試圖以編程方式監視SQL Server數據庫的大小,以便我的Web應用程序的管理部分可以報告它,並且我可以使用它來執行一些清理SP,以清除日誌文件等SQL Server - 數據庫大小計算差異問題
我用下面的代碼來計算表的大小,每個SO推薦:
CREATE TABLE #t (name SYSNAME, rows CHAR(11), reserved VARCHAR(18), data VARCHAR(18), index_size VARCHAR(18), unused VARCHAR(18))EXEC sp_msforeachtable 'INSERT INTO #t EXEC sp_spaceused ''?'''-- SELECT * FROM #t ORDER BY name-- SELECT name, CONVERT(INT, SUBSTRING(data, 1, LEN(data)-3)) FROM #t ORDER BY nameSELECT SUM(CONVERT(INT, SUBSTRING(data, 1, LEN(data)-3))) FROM
#tDROP TABLE #t
當我跑這對我的小樣本數據庫,我得到一個總和值〜6.8兆字節。當我查看我的數據庫的屬性時,它顯示15.5兆字節。
我有以下問題:
1.還有什麼可以彌補差異?
2.可以將這種差異描述爲「開銷」,它只會隨着其他數據的增長而增長(粗略估計就是我所需要的)。
3.存儲過程,函數,視圖,觸發器是在這個「開銷」空間嗎?有沒有辦法來計算這些?
4.是否有另一種方法來獲得整個數據庫的大小?我真的只想要一個簡單的方法來獲得真正的大小。
嗯...這是一個好主意! – pearcewg 2008-12-08 15:58:57