【发布时间】:2009-04-17 11:05:52
【问题描述】:
我正在使用 SqlBulkCopy 类对 SQLServer DB 进行批量插入。
与数据库关联的 .mdf 文件的原始大小为 1508 Mb。
当我运行它时(在大约 400 万条记录的相同数据上):
BatchSize 为 100000,.mdf 的大小增长到 1661 MB。
BatchSize 为 1000000,.mdf 的大小增长到 1659 MB。
为什么会有这种变化?这么小的变化可以忽略不计,除了 当我的测试器以 100 的批量大小运行它(在相同数据上)时,.mdf 文件会疯狂增长,直到它用完所有可用的 20 个演出,然后由于可用空间不足而出错。
这是因为 SqlBulkCopy 分配了一些固定大小的块吗?
它在 BatchSizes > 100000 时工作正常,但我想了解这种奇怪行为/错误的根本原因。
【问题讨论】:
-
您确定是 .MDF 增长而不是 .LDF(日志文件)吗?无论数据如何插入,我都希望数据文件的增长相似,但日志的工作方式可能会有所不同。
-
这有没有想过?我遇到过类似的情况,我在增加 10GB 的数据库上使用大容量复制,但是在使用 SqlBulkCopy 添加数据后,mdf 文件增加了很多,以至于 46% 的文件大小是可用空间。 269,000 MB。这对我来说没有任何意义。