从CSV等文件中批量插入的最大容量

时间:2018-12-12 16:59:52

标签: sql sql-server

我正在通过电子邮件从外部来源接收CSV文件。有时我可能会收到价值超过20万的电子邮件。 BULK INSERT可以导入到临时表中的最大行数是多少。临时表和烫发表之间是否有所不同?而是有关查询处理的行数或内存的更多信息。

BULK INSERT tmpImportTable FROM 
'C:\name\data\sample.csv' 
WITH ( FORMAT='CSV' , FIELDTERMINATOR = ',' )

1 个答案:

答案 0 :(得分:1)

批量插入不会影响200,000行。就您所说的而言,持久化表可能是更好的选择:

  1. 如果连接关闭,它将不会被删除
  2. 这不会减轻tempdb(在所有数据库和许多进程之间共享的资源)的负担

就内存而言,批量插入应处理所有必要的批处理,以免耗尽内存。

此外,如果将数据加载到的表上没有索引,则应该更快。我们使用

对数据上传进行建模
  • 一个没有索引或约束的“原始”表,我们将其批量上传数据
  • 一个“表示”表,这是我们实际上希望数据结束的位置(具有索引等)
  • “清除”过程,该过程在原始表和表示表之间进行数据的移动,批处理和/或操纵。