表格大小计算和优化

时间:2015-07-11 10:05:46

标签: sql-server database-design sql-server-2012

我有一个包含以下列数据类型的表:

(BIGINT,NOTNULL)   X 5 
(TINYINT,NOTNULL)  X 2 
(DATETIME,NOTNULL) X 1

该表有大约300M的记录,并使用接近180GB的磁盘空间。

EXEC sp_spaceused N'my_table';

返回此结果:

rows        reserved        data            index_size      unused
278475702   123318224 KB    24262784 KB     98972504 KB     82936 KB

但我认为配置或设计有问题。如何才能发现此磁盘使用情况是否合适?

有没有办法优化此表的磁盘使用情况?

1 个答案:

答案 0 :(得分:0)

有一些很好的报告可以更轻松地分析磁盘使用情况,但这不会减少:http://blog.sqlauthority.com/2014/08/01/sql-server-ssms-disk-usage-report/

如果数据库曾经更大并且您删除了大量数据,则可以使用DBCC SHRINKFILE函数来减小大小。看到你保留了123GB,我认为这可以帮到你很多。

此外,完全重建索​​引也可以提供很多帮助。

  • 删除所有非聚集索引并在
  • 之后再次创建它们
  • 重新索引聚集索引(如果有的话)
  • 如果您没有聚集索引,请创建它(并可选择将其删除)。这会重新组织您的表并释放行之间使用的空间。