Sof*_*ion 5 sql-server maintenance dbcc
我有一个包含 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
[FileSizeMB] =
convert(numeric(10,2),round(a.size/128.,2)),
[UsedSpaceMB] =
convert(numeric(10,2),round(fileproperty( a.name,'SpaceUsed')/128.,2)) ,
[UnusedSpaceMB] =
convert(numeric(10,2),round((a.size-fileproperty( a.name,'SpaceUsed'))/128.,2)) ,
GrowthPct =
case when a.status & 0x00100000 = 1048576 then a.growth else null end,
GrowthMB =
convert(int,round(case when a.status & 0x00100000 = 1048576 then null else a.growth /128.000 end,0)),
[DBFileName] = a.name
from
sysfiles a;
Run Code Online (Sandbox Code Playgroud)
结果
FileSizeMB UsedSpaceMB UnusedSpaceMB GrowthPct GrowthMB DBFileName
9742.38 9740.06 2.31 NULL 1 mytable
72.25 15.45 56.80 NULL 1 mytable_log
3.00 0.06 2.94 NULL 1 mytable_indexes
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做,知道吗?
尝试 ALTER INDEX ALL ON mytable REBUILD
由于索引大小值如此之高,这指向非聚集索引。聚集索引的大小通常非常小。
您可以检查allindexes
DBCC 上的参数
dbcc showcontig ('Risk') with allindexes, tableresults;
Run Code Online (Sandbox Code Playgroud)
例如,我的一张桌子。十亿行,70GB 表,450MB 索引
name rows reserved data index_size unused
BigTable 1041302384 71256288 70793880 460832 1576
Run Code Online (Sandbox Code Playgroud)
编辑,2012 年 1 月
请注意,删除的记录不会在 DELETE 上物理删除。之后的“幽灵清理”过程会执行此操作。
归档时间: |
|
查看次数: |
4873 次 |
最近记录: |