SQLBulkCopy会显着增加.mdf文件的大小吗?

sqlbulkcopy sql-server

我正在使用SqlBulkCopy类来批量插入SQLServer数据库。

与DB关联的.mdf文件的原始大小为1508 Mb。

当我运行它(在大约400万条记录的相同数据上)时:
BatchSize为100000,.mdf的大小增加到1661 MB。
BatchSize为1000000,.mdf的大小增加到1659 MB。

为何如此变化?这样一个小的变化可以忽略不计,除了当我的Tester运行它(在相同数据上)批量大小为100时,.mdf文件疯狂增长直到它耗尽所有可用的20个演出,然后它由于缺乏可用空间而导致错误。

这是因为SqlBulkCopy有一些固定大小的块分配吗?
它的工作正常,BatchSizes> 100000,但我想了解这个奇怪的行为/错误的根本原因。

热门答案

您的mdf文件是存储数据的位置 - 它应该根据您的数据负载大致增长。但正如“ck”已经指出的那样 - SQL Server允许您指定某种增长模式,例如,每当插入行时,mdf文件都不会逐字节增长。因此,根据您的设置,当需要更多空间时,它将在大小上“跳跃”。

这与是否使用常规INSERT语句或SqlBulkLoad加载数据无关。

渣子



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因