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
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow