管理工作室 "Import CSV" vs sqlcmd 许多插入



我有此表:

Members(person_id, school_id)

在本地SQL Server的本地数据库中

我有一个文件 inserts.sql,其中有5.000.000插入:

Insert into Members(person_id, school_id) VALUES (...)
Insert into Members(person_id, school_id) VALUES (...)
Insert into Members(person_id, school_id) VALUES (...)

inserts.sql是从members.csv

编程创建的

我尝试了3件事:A,B,C

  • a)我尝试在管理工作室中运行.sql,但由于没有足够的内存

  • 而丢了错误
  • b)我尝试从MSDOS运行此文件:

    sqlcmd -S localhost -d mydb -i inserts.sql
    

我的CPU从密集工作中冻结了。我等了10分钟,决定去Ctrl c。我不得不重新启动计算机,因为它全部懒惰,我可以将光标移动

  • c)我去了SQL Management Studio,然后右键单击我的 DB>任务>导入数据

这打开了一个向导,我遵循此步骤:

来自Flat File> Member.CSV> SQL客户端>到表成员>完成

这根本没有使我的CPU laggy放在8分钟内完成。这也向我展示了一个进度栏。

问题:怎么来?这个向导在内部做什么来实现这一目标?这是向导做插入的吗?他如何实现这种速度,如果不执行插入,他将如何将数据放入表中?

向导方法c)实际上在场景后面创建了SSIS包。您甚至可以保存软件包以重新运行或编辑。SSI具有许多性能优势,这是我首选的数据移动/集成技术。

最新更新