我使用的是在 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(相同)
database_log 文件的大小 625MB(大约 300MB)
我们不能通过从表中清除不需要的/旧记录并重建索引来减小数据库的大小吗?
ps:database_log
清除表后我的文件急剧增加,我不希望它变得太大。
sql-server ×1