1. 因为项目比较小,数据库计划里的每天备份都是80M左右,突然看到猛增到500M,然后每天激增,现在都到5G了,恐怖。。。。
趁大家没有发现之前赶快解决。
2. 查看数据库大小,单位是M
select name, convert(float,size) * (8192.0/1024.0)/1024. from [xxxdbname].dbo.sysfiles
为啥这么大???
3. 查看是什么表占这么大空间,
统计每个表的使用空间命令:
exec sp_MSforeachtable "exec sp_spaceused '?'"
找到问题了,是记录api log的表数据变大了,这个是记录项目里所有api的日志的,36502条数据怎么这么大体积,估计是因为表里的请求内容和返回内容数据太多。
因为是log数据,果断delete 表数据。
然后再查看每个表的空间,果然变小了。
再备份成bak看看大小,90M,OK。
4. 虽然表和备份文件变小了,但是数据库空间还是那么大,
使用收缩,再来查看下大小。
收缩后空间也确实变小了,但是数据库的文件(mdf)还是很大,没有办法,估计是前面的数据一直在增加,里面的碎片太多。
最后在网上找到办法(慎重!没有办法的办法):
在夜深人静的时候,备份数据库,然后删除数据库,重建相同的数据库,导入表结构和表数据。