Sql-Server
如何計算與數據庫大小相關的填充因子百分比?
我使用維護計劃重建了數據庫中的所有索引,設置填充因子為 95(5% 可用空間)。重新索引後,數據庫的大小幾乎翻了一番——報告的可用空間為 42%。
計算的填充因子如何與數據庫的大小相關?
重新索引可能有問題;是什麼導致瞭如此大的規模增長?
重新索引後的一些數據庫資訊:
Size (MB): 164 983.625 Data Space Used (KB): 82 907 896 Index Space Used (KB): 14 073 320 Space Available (KB): 71 879 024
為一張表的維護計劃生成 T-SQL:
ALTER INDEX [Table1_Index1] ON [dbo].[Table1] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95)
附加資訊:
的結果
sp_spaceused 'dbo.BigTable'
name rows reserved data index_size unused BigTable 58028080 72824296 KB 68393936 KB 4424000 KB 6360 KB
你看到的是正確的。
當你第
rebuild
一次建造index
新index
的時,只有這樣舊index
的才會被丟棄。如果你不使用SORT_IN_TEMPDB = ON
伺服器需要創建的空間
sort
在您的內部分配db
你
db
現在有空的空間,它不是reserved
任何空間object
,它只是空閒空間(在需要做的臨時對像sort
被刪除後釋放的空間)所以你的索引在 42% 上不是空的,你的索引在 42%
db
上是空的,如果你做了一個shrink
(data file
我不推薦它)你的數據庫將只佔用82Gb