我从网站集回收站中删除了所有内容,并远程访问了内容数据库所在的 SQL 服务器,然后查看了 WSS_Content,但文件并没有变小。回收站中有大约 2 或 3 GB 的文件夹和文件。我只是想确保这些文件被删除了。
我是不是漏掉了什么?还是 SQL 服务器没有正确更新文件大小?
MOSS2007 IIS6 WinSer2003
答案1
数据库不会因为内容变少而自动缩小。动态调整数据库大小是性能的噩梦,因此大多数人会竭尽全力确保文件足够大,以便能够在非高峰时段增加文件大小。
你需要跑DBCC 收缩数据库
答案2
内容数据库不应缩小。如果需要,您可以运行 DBCC shrink database,但我不会养成这种习惯。我会在缩小之前运行此脚本,以查看您是否有“过多”的可用空间
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
该代码的来源是这里