【发布时间】:2011-07-07 13:25:06
【问题描述】:
我有一个大小约为 4GB 的数据库。我已经复制了该数据库并删除了其中 99% 的数据,因为我需要一个仅包含架构和基本数据的数据库(保留大部分静态数据)。
现在的问题是 MDF 文件的大小仍然约为 4GB。如果我读取表格的大小(例如,使用this),它们的总和不到 20 MB。日志文件已经缩小,但我运行的脚本都没有用于缩小数据库文件。
注意:我通常不这样做,但这次我需要收缩数据库(我知道不建议这样做)
编辑:+有用的信息
命令:
exec sp_spaceused
输出:
database_name database_size unallocated_space
AccudemiaEmptyDb 3648.38 MB 4.21 MB
命令:
select object_name(id) as objname, SUM(dpages*8) as dpages, COUNT(*) as cnt
from sysindexes
group by id
order by dpages desc
输出:
object_name(id) sum(dpages*8) count(*)
sysdercv 675328 1
sysxmitqueue 359776 1
sysdesend 72216 1
sysconvgroup 47704 1
sysobjvalues 4760 5
sec_OperationAccessRule 3472 5
sec_PageAccessRule 2232 5
syscolpars 656 11
AuditObjects 624 2
sysmultiobjrefs 408 5
HelpPage 376 8
sysschobjs 352 9
syssoftobjrefs 328 7
sysidxstats 272 10
sysrscols 200 1
Translation 160 3
sysallocunits 128 3
sysiscols 128 8
syssingleobjrefs 96 5
sysrowsets 80 4
【问题讨论】:
-
我在互联网上找到的所有解决方案... DBCC SHRINKDATABASE,更改为 RECOVERY SIMPLE,然后更改为 DBCC,所有表上的 DBCC DBREINDEX,碎片整理索引和更新统计信息,然后是 DBCC,备份/恢复,分离/attaching、DBCC CLEANTABLE 以及其他脚本...
标签: sql-server sql-server-2008 shrink