有效的批量数据插入

时间:2012-02-19 15:52:35

标签: c# asp.net sql

我在数据日志文件中有以下格式的数据。

每行代表数据库中的一行,一次插入500-1000行。

最好通过调用存储过程直接在数据库中插入数据(该过程包含调用日志文件和插入数据的逻辑)

OR

在应用程序中解析它并插入数据是否更好。

   29   2011-02-01 11:00:40 1   0   1   0
   30   2011-02-01 11:00:44 1   0   1   0
   32   2011-02-01 11:00:49 1   0   1   0

2 个答案:

答案 0 :(得分:1)

这可能是.tsv格式(制表符分隔值)。

LOAD DATA LOCAL INFILE 'uniq.csv' INTO TABLE tbl
     FIELDS TERMINATED BY '\t'
     ENCLOSED BY ''
     LINES TERMINATED BY '\n'
(column1, column2, column3)

\ t是制表符。如果它不起作用,请将其更改为空间。

逐行手动处理效率不高,因为当您尝试逐行读取时,将多次访问硬盘。 LOAD命令应该立即读取整个文件。

你应该记住,索引会严重减慢这样的插入速度。如果你需要读取大量数据(例如100000行) - 有时最好在插入后删除索引,插入和重新创建索引。

答案 1 :(得分:0)

更好(性能)以批量方式插入数据(使用LOAD FROM或事务。我假设存储执行类似操作),而不是一次插入一个,每行一次查询。