2014-09-26 59 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