日期:2014-05-17  浏览次数:20438 次

关于sql server2000删除数据和.mdf文件大小问题
例如  数据库 中就个表记录1000条,其数据文件(.mdf文件)大小是10M,现在我用delete 语句删除 这1000条记录,然后再添加1000条记录(和之前删除的1000记录大小一样),请问  其数据文件(.mdf文件)大小 会不会发生变化????

------解决方案--------------------
#1.只有数据库空间用尽时,数据库才会自动增长。楼主可以测试一下,删除些数据,再插些数据,新插入的数据,会不会用掉删除数据的空间。
#2.一般来说,数据库一定要设置自动增长(除非你做测试),防止没有空间而报错。但增长的方式一般选择按固定大小(比如每次增长5G)来增长,以免自动增长时由于时间过长,导致那一时段的事务回滚。
#3.删除记录和增加记录,都会影响日志文件的大小。也需要考虑。其实,日志文件才是最吃硬盘的。
所以我认为,你只用把旧数据,归档到另外的数据库里即可。自动增长还是要的。
------解决方案--------------------
引用:
Quote: 引用:

#1.只有数据库空间用尽时,数据库才会自动增长。楼主可以测试一下,删除些数据,再插些数据,新插入的数据,会不会用掉删除数据的空间。
#2.一般来说,数据库一定要设置自动增长(除非你做测试),防止没有空间而报错。但增长的方式一般选择按固定大小(比如每次增长5G)来增长,以免自动增长时由于时间过长,导致那一时段的事务回滚。
#3.删除记录和增加记录,都会影响日志文件的大小。也需要考虑。其实,日志文件才是最吃硬盘的。
所以我认为,你只用把旧数据,归档到另外的数据库里即可。自动增长还是要的。



您好,归档到另外的数据库?怎么归档?还有 归档后就腾出空间了吗?比如说 归档了100条记录,我再添加80条记录会不会使.mdf文件继续变大???

1、归档方法很多,最原始的方法是,比如表A存放一年的数据,有时间列,但是你只要一个月的数据,那么可以select * into [归档库].[dbo].[归档表] from tb where 时间列>特定时间,然后delete 掉这部分数据,最好重建聚集索引,重组一下空间。
2、归档了如果没删100条数据,再加肯定加空间(前提是你的数据库空间已经不够了,需要增长,否则你看不出大小,除非用其他手段),如果删了,再插入一般会重用的。