2016-08-12 53 views
-5

我在一个文件中有100万行数据,我想将所有记录插入到SQL Server中。插入时,我正在与服务器上的现有数据进行比较,如果比较满意,我将更新服务器中的现有记录,否则我会从文件中插入记录。针对大型数据集的SQL Server批量插入

我目前正在通过从C#循环来完成这项工作,这会耗费3个多小时的时间。任何人都可以提出改进性能的想法吗?

谢谢, Xavier。

+1

BCP ..................... –

+0

感谢您的回复。我们可以使用批量复制程序与现有数据进行比较,我不熟悉这个 – xavier

+0

您必须将数据加载到中间表(堆),创建索引,比较并最终更新目标表。使用BCP或任何其他批量装载方法时,装载通常需要10-20秒,最长几分钟。 – Anton

回答

0
  1. 检查您的全部或简单恢复模式下的数据库:

    SELECT recovery_model_desc FROM sys.databases WHERE name = 'MyDataBase';

  2. 如果数据库是SIMPLE恢复模式,你可以创建一个临时表就在那里。如果它处于Full模式,则最好使用Simple模型在单独的数据库中创建登台表。
  3. 使用任何BulkInsert操作/工具(例如BCP,因为已经建议)
  4. 插入只有那些从你的临时表的数据,这不你的目标表中。 (希望你知道该怎么做)
+0

非常感谢 – xavier