有谁知道在不使用外部实用程序(即 bcp)的情况下从 Excel 表(VBA 数组)获取数据到 SQL 2008 表的最快方法?请记住,我的数据集通常是 6500-15000 行,大约 150-250 列;我最终在自动 VBA 批处理脚本中传输了大约 20-150 个。
我已经尝试了几种方法从 Excel 表 (VBA) 获取大量数据到 SQL 2008。我在下面列出了这些:
方法 1. 将表传递到 VBA 数组并发送到存储过程 (ADO) -- 发送到 SQL 很慢
方法2. 创建断开连接的RecordSet 加载它,然后同步。-- 发送到 SQL 非常慢
方法 3. 将表放入 VBA 数组,遍历数组并连接(使用分隔符)然后发送到存储过程。-- 发送到 SQL SLOW,但比方法 1 或 2 快。
方法 4. 将表放入 VBA 数组,循环遍历数组并连接(使用分隔符),然后使用 ADO 记录集 .addnew 命令放置每一行。-- 发送到 SQL 非常快(比方法 1-3 快大约 20 倍),但现在我需要使用单独的过程拆分该数据,这将增加大量等待时间。
方法 5. 将表放入 VBA 数组,序列化为 XML,以 VARCHAR 形式发送到存储过程,并在存储过程中指定 XML。-- 发送到 SQL 非常慢(比方法 1 或 2 慢大约 100 倍)
有什么我想念的吗?