大虾们好,本人某小公司兼职DBA,公司有个数据库SQL Server 2005已经运行6个月左右,数据库大小飙升至200G,请大虾们建议下如何对其进行压缩 . 我查看了下所有表大小 ,create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t order by data desc
drop table #t
--运行结果
name rows reserved data index_size unused
tablename 105656928 256008704 KB 71470696 KB 182230512 KB 2307496 KB发现reserved表保留空间很大, 请问大虾们 这个应当如何处理? 可以释放次空间吗?在线等待,谢谢!
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t order by data desc
drop table #t
--运行结果
name rows reserved data index_size unused
tablename 105656928 256008704 KB 71470696 KB 182230512 KB 2307496 KB发现reserved表保留空间很大, 请问大虾们 这个应当如何处理? 可以释放次空间吗?在线等待,谢谢!
请问是否备份后,直接使用
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
收缩就行了? 我已经在属性设置好了自动收缩=true,可能以前的同事当初没有选这个。谢谢
如果是日志文件收缩,先日志备份,然后进行文件收缩.
看你的表的结构如何了。你可以用sp_estimate_data_compression_savings看看预估能节省多少空间。