有谁知道使用外部实用程序(即bcp)从SQL 2008 而不是获取数据和Excel表格(VBA阵列)的最快方法吗? 请记住,我的数据集通常是6500-15000行,大约150-250列;我最终在一个自动化的VBA批处理脚本中传输了大约20-150个文件。将Excel表格数据传输到SQL 2008R2最快的方法
我已经尝试了获取大量的数据来自于2008年的SQL我在下面列出的Excel表(VBA)的几种方法:
方法1.传表到VBA数组和发送到存储过程( ADO) - 发送到SQL是SLOW
方法2.创建断开连接的RecordSet加载它,然后同步。 - 发送到SQL非常慢
方法3.将表放入VBA数组中,循环虽然数组和连接(使用分隔符)然后发送到存储过程。 - 发送到SQL SLOW,但快于方法1或2。
方法4.将表分成VBA数组,循环虽然阵列和串连(使用分隔符)然后将与ADO记录.addnew命令的每一行。 - 以非常快的速度发送到SQL(大约比方法1-3快20倍),但是现在我需要使用单独的过程分割数据,这会增加大量的等待时间。
方法5.将表放入VBA数组中,序列化为XML,以存储过程的形式发送到VARCHAR并在存储过程中指定XML。 - 发送到SQL INCREDIBLY SLOW(比方法1或2慢100倍)
我失踪了吗?
-索引不是问题,因为我正在加载到临时表中 - 但是,谢谢,我已经忘记了这一点。一般只使用一个连接。至于ADO命令对象,我已经尝试过了,但发现速度没有传递给sp。是的,在循环添加新代码之后,我只发布了一个ADO更新批处理。 .add新方法过去和现在仍然是最快的,但只能在与concat结合使用时才能使用 - 这将在稍后进行解析。 – cshenderson
我会研究批量记录恢复模式。 – cshenderson