【问题标题】:What should I choose between ADO.Net and OLE in SSIS?我应该在 SSIS 中的 ADO.Net 和 OLE 之间选择什么?
【发布时间】:2019-01-14 06:41:05
【问题描述】:

无论如何,我尝试在 SSIS 中使用这种两个源目标,但我找不到它们在配置方面的区别。那么谁能分享我知道,我应该选择什么?以及在每种情况或数据中使用哪个更好。

【问题讨论】:

    标签: sql-server ssis etl


    【解决方案1】:

    OLE DB 连接可用作 SSIS 查找的来源。您不能选择 ADO.Net 类型的连接进行查找。

    ADO.Net 支持较新的 SQL Azure 授权方法,例如 Active Directory - Password。 OLE DB 只能使用 SQL 身份验证

    我的建议是,如果您计划迁移到或使用 SQL Azure,请不要使用 OLE DB

    如果可能的话,我也建议不要使用查找

    ADO.Net 肯定比 OLE DB“更新”,并且更符合 C#.... 我没有引用,这只是我的理解。

    .. 只是为了巩固答案。

    @Ferdipux 在下面的回答中提出了一个很好的观点:

    ADO.NET 连接管理器可以在脚本任务/转换的 C# 代码中使用,无需任何额外操作。只需获取它并调用 AquireConnection 方法即可。

    【讨论】:

    • 感谢您的回答@Nick.McDermaid。
    • 这个答案有帮助吗?
    • 几乎在我的任务中我使用 ADO.Net,在 ADO.Net 中设置源或目标类型很容易,而且步骤简单。
    • 太好了。如果您认为此答案有帮助,请标记为有帮助。
    【解决方案2】:

    搜索了这个话题后,我在MSDN网站上发现了一个帖子,从4个角度进行了比较:

    1. 支持跨 SSIS 组件
    2. 性能
    3. 64 位注意事项
    4. 目标数据源和数据类型可支持性

    您可以参考此链接了解更多信息:OLE DB VS ADO.NET

    还有一些有用的链接可以参考:

    1. SSIS Data Flows – ADO.NET vs. OLE DB vs. ODBC
    2. Difference between ADO NET source and OLE DB Source in SSIS 2008?
    3. Performance Testing OLE DB vs ADO.NET in SSIS

    【讨论】:

    • 我什至在 2014 年的第二个链接中有评论
    • 是的,非常感谢您的链接。
    【解决方案3】:

    添加到 Nick 的回答中,ADO.NET 连接管理器可以在脚本任务/转换的 C# 代码中使用,而无需任何额外的操作。只需获取它并调用AquireConnection 方法。
    OLEDB 连接管理器必须以某种方式转换为 ADO.NET;我通过解码它的连接字符串来做到这一点。
    如果您使用的是普通 SSIS,并且不考虑迁移到 Azure,则 OLEDB 连接对于日期检索会更快。

    【讨论】:

      【解决方案4】:

      这是另一篇评论,并列出了一个新原因:

      https://www.mssqltips.com/sqlservertip/3053/sql-server-integration-services-connection-manager-tips-and-tricks/

      ADO.NET 连接的一个额外优势是在执行 SQL 任务中使用参数时。在 OLEDB 中,参数在 SQL 中都显示为“?” 但在 ADO.NET 中,您可以按名称引用它们中的每一个,例如 @ParameterName

      【讨论】:

        猜你喜欢
        • 2011-02-05
        • 1970-01-01
        • 2019-08-25
        • 2018-01-19
        • 2013-09-25
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 2022-02-22
        相关资源
        最近更新 更多