2014-09-26 61 views
1

我有一個存儲二進制數據的表。它有490,409行。當我總結二進制文件列的數據長度時,總大小約爲12GB。對於插入的數據量,SQL Server MDF文件增長得太大

但是,每次插入新行時,.MDF文件都會以GB爲單位增長,即使我只插入幾百MB也是如此。 「自動增長」設置爲5%。當我在桌上運行sp_spaceused時,它顯示0k未使用。當我對數據庫運行時,我得到345.41 MB未分配的大小爲16320.56 MB的數據庫。

我做錯了什麼,.MDF文件每次我插入甚至相對少量的數據到這個表中時,都會增長很多?

回答

2

通過基本計算(16320.56 ×.05),即816MB,這非常接近,如果您在該表中的其他列上計入任何其他索引,則可以計入額外的增長大小。

無論如何,我個人會拋棄以百分比爲基礎的自動增長,尤其是如果這打擾了你,並且以一個固定的增長量增長。

+0

該指數非常小。我沒有得到4gb的來源......對於一個固定的增長規模,你會有什麼建議? – jdf35w 2014-09-26 16:46:31

+0

理想情況下,我會建議預先分配您認爲數據庫需要的空間量,並完全禁用自動增長。但有時候這不是一種選擇。我通常默認爲1GB,但它很大程度上取決於數據庫的增長速度以及硬件的類型。您的目標是平衡兩個競爭因素:足夠大的增量以減少增長量,但不會太大以致性能受到影響。 – md4 2014-09-26 23:03:01