我有一个包含 12 个月以上数据的表格。我备份表然后删除所有行,只保留上个月插入的行。但是表大小不会缩小,底层物理文件也不会缩小。
dbcc showcontig ('mytable') with tableresults;
ObjectName ObjectId IndexName IndexId Level Pages Rows MinimumRecordSize MaximumRecordSize AverageRecordSize ForwardedRecords Extents ExtentSwitches AverageFreeBytes AveragePageDensity ScanDensity BestCount ActualCount LogicalFragmentation ExtentFragmentation
mytable 478624748 PK_Log 1 0 21344 467392 94 8033 237 0 2675 12918 2862,346 64,6361996540647 20,6517532316743 2668 12919 77,8392053973013 71,7757009345794
exec sp_spaceused 'mytable', @updateusage = 'TRUE'
name rows reserved data index_size unused
LogTrace 467392 8984976 KB 8930056 KB 21984 KB 32936 KB
Run Code Online (Sandbox Code Playgroud)
这些值意味着表的每一行大约是 19MB!
我尝试在没有更改的情况下重建索引:ALTER INDEX PK_myindex ON mytable REBUILD
我尝试过的其他事情:
select …
Run Code Online (Sandbox Code Playgroud)