【发布时间】:2011-10-07 19:51:57
【问题描述】:
我正在构建一个 SQL Server 2005 Integration Services 包,用于将数据从 Sybase Adaptive Server Enterprise 12.5.4 数据库迁移到 SQL Server 2005 数据库。 Sybase 数据库是我们团队无权更改或管理的供应商产品的后端。
在我最初的开发阶段,为了访问 Sybase 数据库,我在目标数据库服务器上使用 Microsoft OLE DB Provider for ODBC Drivers 创建了一个 SQL Server 链接服务器。创建此链接服务器后,我使用单个数据源创建了我的 SSIS 包 - 连接到 MS SQL Server“目标”数据库。接下来,在我的 SSIS 包数据流任务中,我将 OLE DB 源配置为访问包中定义的单个数据源,使用 SQL 命令访问源链接服务器(只需使用 SELECT col1, col2, col3 FROM [SybaseLinkedServer]。[数据库].dbo.[表])。数据流任务中的 OLE DB 目标使用与 OLE DB 源相同的连接管理器,但使用表或视图 - 快速加载数据访问模式。
后来,在项目中,我获得了 Sybase ASE OLE DB Provider(v12.5.4 OLE DB Provider 不再可用,我们不得不购买 v15.7 ASE SDK)。考虑到从解决方案中删除链接服务器会提高性能,我修改了 SSIS 包以包含一个新的 OLE DB 数据源,该数据源利用 Sybase ASE OLE DB 提供程序直接访问 Sybase 数据库,并修改了 OLE DB 源以使用新的ASE OLE DB 数据源具有表或视图数据访问模式。
令我惊讶的是,将解决方案从使用用于 ODBC 驱动程序的 OLEDB 提供程序的链接服务器切换到使用 Sybase ASE OLEDB 提供程序的直接 OLEDB 连接会产生明显较差的结果,这与我的预期相去甚远。 The results from test runs using each method are available at this hyperlink.
有没有人遇到过此类问题和/或这种行为是否正常?有没有更好的方法来配置它以将数据从 Sybase ASE 提取到 MS SQL Server 2005?
【问题讨论】:
标签: sql-server-2005 ssis oledb sap-ase