gpt4 book ai didi

sql - SSIS 预评估阶段需要很长时间

转载 作者:行者123 更新时间:2023-12-04 22:21:13 25 4
gpt4 key购买 nike

我有一个包含调用存储过程的 OLEDB 源(通过变量生成的语句)的数据流。
在 SSMS 中,它需要 8 分钟,但包本身需要 3 倍的时间才能完成。
我已将验证 (DelayValidation) 设置为 true,因此它仍会在运行时执行此操作。我还在数据流组件以及连接管理器中设置了元数据的验证。
数据流也有 ReadUncommitted 。
我不知道还有什么地方可以看,任何有关如何使运行速度更快的帮助都会很棒。

最佳答案

我怀疑真正的问题出在您的存储过程中,但我也包含了一些基本的 SSIS 项目来尝试解决您的问题:

  • 确保 OLE DB 源的连接管理器都设置为 DelayValidation (= True)。
  • 确保 ValidateExternalMetadata 设置为 false
  • DefaultBufferMaxRows 和 DefaultBufferSize 对应于表的行大小
  • DROP 并重新创建目标组件是 SSIS
  • 确保您的存储过程设置了 ANSI_NULLS ON
  • 确保 sproc 中的 SQL 命中索引
  • 添加查询提示 OPTION (FAST 10000) - 此提示意味着它将选择一个将针对前 10,000 行进行优化的查询 - 默认的 SSIS 缓冲区大小
  • 查看您的存储过程 SQL Server parameter sniffing

  • 慢速方式:
    create procedure GetOrderForCustomers(@CustID varchar(20))
    as
    begin
    select * from orders
    where customerid = @CustID
    end

    快捷方式:
    create procedure GetOrderForCustomersWithoutPS(@CustID varchar(20))
    as
    begin
    declare @LocCustID varchar(20)
    set @LocCustID = @CustID

    select * from orders
    where customerid = @LocCustID
    end

    关于sql - SSIS 预评估阶段需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19305676/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com