我正在编写一个 C# 工具,它根据用户指定的规则生成数据,并且需要将所有数据插入到数据库中的(新)表中。这些数据很容易最终变得太大而无法同时保存在内存中(甚至保存在客户端的磁盘上)。一般流程是:
生成数据行
插入数据表
重复 1 和 2 直到满足批量大小 (??)
通过SqlBulkCopy上传批量,清除DataTable
重复 1-4,直到满足总行数(可能非常大)。
一些注意事项:
由于逻辑复杂,无法真正通过TSQL重新创建并在服务器端执行。
生成较小的 DataTable 并多次上传以满足 rowcount 不是此方案的选项。每个单元格都需要在 C# 中单独设置。
鉴于用户可以选择数据类型的任意组合和任意大的行数,动态确定批量大小的最佳选择是什么?
繁华开满天机
幕布斯6054654
相关分类