2015-07-11 50 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保留,我認爲這可以幫助你很多。

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

  • 丟棄所有非聚集索引和後
  • 重新索引創建它們再次聚集索引(如果有的話)
  • 如果你沒有一個聚集索引,創建它(和可選的拖放後)。這會重組您的表並釋放在行之間使用的空間。