小编Ven*_*kat的帖子

清除了表中的 100,000 多条记录,但数据库的大小没有减少

我使用的是在 Windows Server 2008 R2 Standard 上运行的 SQL Server 2008 R2 版本。我的数据库大小约为 207MB。由于它在一个表中包含 100 条记录,我决定只保留前 10000 条记录并删除剩余的记录以最小化数据库的大小。

我从数据库中删除了 90000 条记录,并重建了索引:

 DELETE FROM toptrends
 WHERE HandleID NOT IN (SELECT TOP 10000 HandleID
                        FROM toptrends
                        ORDER BY lastmodifieddatetime DESC)
 go

 ALTER INDEX ALL ON TopTrends
 REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
          STATISTICS_NORECOMPUTE = ON);
 GO
Run Code Online (Sandbox Code Playgroud)

并检查了数据库和database_log 文件的大小。该database_log文件的大小尺寸有所增加,但是数据库文件保持不变。我认为它应该减少

  • 删除前的文件大小:大约 207892
  • 删除后的文件大小:大约 207892(相同)

  • database_log 文件的大小 625MB(大约 300MB)

我们不能通过从表中清除不需要的/旧记录并重建索引来减小数据库的大小吗?

ps:database_log清除表后我的文件急剧增加,我不希望它变得太大。

sql-server

3
推荐指数
1
解决办法
8776
查看次数

标签 统计

sql-server ×1