批量插入还是导入和导出数据向导?

ale*_*xtc 3 ssis ssms bulkinsert sql-server-2008 sql-server-2008-r2

我有一个大型每周 CSV 文件(从 500MB 到 1GB,超过 250 万行)加载到 SQL Server 2008 R2 数据库中。

我能够使用 BULK INSERT 命令或导入和导出数据向导来加载数据。就我的数据集而言,它们之间的加载时间跨度没有观察到差异。

就性能而言,您推荐的方法是什么。效率和以后的维护有关吗?

提前致谢!

干杯,亚历克斯


我最终使用了 SQL Server 导入和导出数据向导并将其保存到 SSIS 包中。然后我使用 Business Intelligence Development Studio 编辑保存的包并将其重新导入回 SQL Server。它运行良好,只需 2 分钟即可将 10MB 到 600MB 的所有 9 个 CSV 文件加载到 SQL Server 数据库。

Vik*_*nde 5

MSDN论坛:

当 SSIS 开发人员选择在 OLEDB 目标上使用“快速加载”选项和“表锁”,或者使用 SQL Server 目标时,他/她已经有效地使用了 BULK INSERT,所以这是一个有争议的问题辩论什么更快。

批量插入本身有技巧,在 SQL Server 竞赛中,可以做更多的事情来使其更快地进行行处理,即使其最小化或根本不记录。现在禁用约束是 bcp 处理的另一件事,而不是 SSIS(除非有指示),这就是 MSFT 可以决定在 SSIS 中改变的,但 SSIS 的亮点在于使用算法找出给定的最佳参数要使用的机器/系统(例如缓冲区大小等)。

因此,在大多数应用程序中,SSIS 立即更快,并且通过适当的调整甚至更快。

在现实生活中,许多因素给基准测试带来了不同的影响,但在这个阶段,我倾向于声明没有真正可衡量的差异。

Microsoft 已发布有关比较实现高性能的不同加载策略和在批量加载方法之间进行选择的信息丰富的指南 -数据加载性能指南

也看看下面的文章。