2015-07-11 51 views
0

我有下面列数据类型的表:表规模计算和优化

(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 

,但我觉得有什么错配置或设计。我怎样才能找到这个磁盘使用是否正确?

有什么方法可以优化此表的磁盘使用情况吗?

+0

是否有唯一索引/主键?哪种类型? – Shnugo

+0

@Shnugo是的,他们都存在。 – Behrooz

回答

0

有可用来分析磁盘的使用更加容易一些很好的报告,但不会使其减少:http://blog.sqlauthority.com/2014/08/01/sql-server-ssms-disk-usage-report/

如果数据库曾经更大,您已经删除了大量的数据,你可以使用DBCC SHRINKFILE功能来减小尺寸。看到你有123GB保留,我认为这可以帮助你很多。

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

  • 丢弃所有非聚集索引和后
  • 重新索引创建它们再次聚集索引(如果有的话)
  • 如果你没有一个聚集索引,创建它(和可选的拖放后)。这会重组您的表并释放在行之间使用的空间。