Sql-Server

清空網站集資源回收筒不會使內容數據庫變小嗎?

  • May 18, 2010

我從站點集合資源回收筒中刪除了所有內容,並將其遠端連接到內容數據庫所在的 SQL 伺服器中,然後查看 WSS_Content 並且吸盤並沒有變小。我在資源回收筒中有大約 2 或 3 個包含文件的文件夾。我只是想確保它被刪除。

有什麼我想念的嗎?還是 SQL 伺服器沒有正確更新文件大小?

MOSS2007 IIS6 WinSer2003

數據庫不會自動縮小,只是因為它們的內容較少。動態調整數據庫的大小是一場性能噩夢,因此大多數人都非常努力地確保文件足夠大,以便能夠在非高峰時間增長它。

您需要執行DBCC SHRINK DATABASE

內容數據庫不應縮小。如果需要,您可以執行 DBCC 收縮數據庫,但我不會養成這種習慣。我會在縮小之前執行這個腳本,看看你是否有“過多”的可用空間

SELECT DB_NAME(database_id) AS DatabaseName, 
CAST([Name] AS varchar(20)) AS NameofFile,
CAST(physical_name AS varchar(100)) AS PhysicalFile,
type_desc AS FileType,
((size * 8)/1024) AS FileSize,
MaxFileSize = CASE WHEN max_size = -1 OR max_size = 268435456 THEN 'UNLIMITED'
WHEN max_size = 0 THEN 'NO_GROWTH' 
WHEN max_size <> -1 OR max_size <> 0 THEN CAST(((max_size * 8) / 1024) AS varchar(15))
ELSE 'Unknown'
END,
SpaceRemainingMB = CASE WHEN max_size = -1 OR max_size = 268435456 THEN 'UNLIMITED'
WHEN max_size <> -1 OR max_size = 268435456 THEN CAST((((max_size - size) * 8) / 1024) AS varchar(10))
ELSE 'Unknown'
END,
Growth = CASE WHEN growth = 0 THEN 'FIXED_SIZE'
WHEN growth > 0 THEN ((growth * 8)/1024)
ELSE 'Unknown'
END,
GrowthType = CASE WHEN is_percent_growth = 1 THEN 'PERCENTAGE'
WHEN is_percent_growth = 0 THEN 'MBs'
ELSE 'Unknown'
END
FROM master.sys.master_files
WHERE state = 0
AND type_desc IN ('LOG', 'ROWS')
ORDER BY database_id, file_id

此程式碼的來源在這裡

引用自:https://serverfault.com/questions/143160