Jan*_*a P 2 sql-server oledb ssis etl bulkinsert
我正在使用OLE Db目标批量导入多个平面文件。经过一些调整之后,我最终将SQL Server Destination的速度提高了25%-50%。
尽管我对这个目的地感到困惑,因为网络上存在矛盾的信息,但有人反对它,有人建议使用它。我想知道,在将其部署到生产之前是否有任何严重的陷阱?谢谢
在此答案中,我将尝试提供SSIS官方文档中的信息,并提及我在SQL Server目标方面的个人经验。
SQL Server目标连接到本地SQL Server数据库,并将数据批量加载到SQL Server表和视图中。您不能在访问远程服务器上的SQL Server数据库的程序包中使用SQL Server目标。而是,程序包应使用OLE DB目标。
SQL Server目标提供了与批量插入任务所提供的向SQL Server相同的高速数据插入。但是,通过使用SQL Server目标,程序包可以在将数据加载到SQL Server之前将转换应用于列数据。
要将数据加载到SQL Server中,应考虑使用SQL Server目标而不是OLE DB目标
OLEDB目标-快速加载选项:将数据加载到OLE DB目标中的表或视图中,并使用快速加载选项,该选项针对批量插入进行了优化
根据SQL Server目标与OLE DB目标-MSDN主题:
前集成服务集团项目经理Donald Farmer说,使用,您可以将性能提高5%到10%SQL Server Destination。
此外,请参考Microsoft数据集成专家Matt Masson的以下帖子,他在其中回答了以下问题:
我应该使用SQL Server目标吗?
答案是
没有
...
我的建议是,如果您需要性能的每一点(在10个小时的负载下,性能提高10%可能非常重要),请尝试使用SQL Server Destination来查看它如何为您工作。但是,请记住SQL Server目标的以下限制:
- 您必须将SSIS与目标数据库运行在同一台计算机上
- 您必须以管理员身份运行软件包
- 出现问题时很难调试
考虑到这些限制,即使您发现SQL Server Destination的性能有所提高,我还是建议使用OLE DB Destination。
(更新@ 2019-03-25)
在搜索SSIS最佳实践时,我发现了一个非常有用的Microsoft文章,可以用作参考:
在本文中,他们对所有数据加载方法(包括SQL Server目标和OLEDB目标)进行了比较,他们提到:
SQL Server目标 SQL Server目标是将数据从Integration Services数据流批量加载到SQL Server的最快方法。此目标支持SQL Server的所有大容量加载选项-ROWS_PER_BATCH除外。
请注意,此目标需要与SQL Server的共享内存连接。这意味着它只能在Integration Services与SQL Server在同一台物理计算机上运行时使用。
OLE DB目标: OLE DB目标支持SQL Server的所有批量加载选项。但是,为了支持有序的大容量加载,需要一些其他配置。有关更多信息,请参见“排序的输入数据”。要使用批量API,您必须将此目标配置为“快速加载”。
OLE DB目标可以同时使用TCP / IP和到SQL Server的命名管道连接。这意味着OLE DB目标与SQL Server目标不同,可以在除批量加载目标以外的其他计算机上运行。因为使用OLE DB目标的Integration Services程序包不需要在SQL Server计算机本身上运行,所以可以使用主力服务器扩展ETL流。
(更新@ 2019-03-25)
由于此问题已被许多人用作参考,并且在该领域有更多经验之后,我添加了本节以提及我在使用SQL Server目标服务器方面的个人经验。
尽管官方文档提到SQL Server目标将提高性能,但由于许多原因,我不建议使用此组件:
您还可以参考以下帖子(来自@billinkc)以获取有关此主题的更多信息:
根据Microsoft的文章,您可以说可以SQL Server Destination提高插入数据的性能(它使用BULK插入),但是它是针对特定情况(即本地SQL服务器)而设计的。OLEDB Destination在其他情况下更通用,建议在其上使用Fast Load数据访问模式(也使用BULK插入),OLE DB destination这将提高数据加载的性能。
另一方面,根据我的经验以及SSIS专家撰写的许多文章,完全不建议使用SQL Server Destination,因为它不稳定且经常引发异常并且性能可以忽略不计。
最近,我发表了有关该主题的详细文章。您可以在以下位置检查它:
| 归档时间: |
|
| 查看次数: |
3797 次 |
| 最近记录: |