Performance SSIS,是什么导致性能降低?

Performance SSIS,是什么导致性能降低?,performance,ssis,bulkinsert,Performance,Ssis,Bulkinsert,对于源:OLE DB源-Sql命令 SELECT -- The destination table Id has IDENTITY(1,1) so I didn't take it here [GsmUserId] ,[GsmOperatorId] ,[SenderHeader] ,[SenderNo] ,[SendDate] ,[ErrorCodeId] ,[OriginalMessageId]

对于源:OLE DB源-Sql命令

SELECT -- The destination table Id has IDENTITY(1,1) so I didn't take it here
       [GsmUserId]
      ,[GsmOperatorId]
      ,[SenderHeader]
      ,[SenderNo]
      ,[SendDate]
      ,[ErrorCodeId]
      ,[OriginalMessageId]
      ,[OutgoingSmsId]
      ,24 AS [MigrateTypeId] --This is a static value
  FROM [MyDb].[migrate].[MySource] WITH (NOLOCK)

目标:OLE DB目标

插入1.000.000数据需要5分钟或更长时间。我甚至未选中
检查约束

然后,对于相同的SSIS配置,我想用与目标表完全相同的另一个表来测试它。因此,我重新创建destination表(除了内部数据外具有相同的约束),并命名为
dbo.MyDestination

但是,用同样数量的数据完成同样的数据大约需要30秒或更短的时间。
为什么测试表比原始表快得多?是因为原始表已经有107.000.000个数据吗?

检查目标表上的索引/触发器/约束等。这些可能会大大减慢速度

检查OLEDB连接管理器的数据包大小,适当地设置它,您可以按照将其设置为正确的值


如果您熟悉SQL Server Profiler的功能,请使用它来获得更多的洞察力,特别是当您使用重新创建的表插入原始表中的数据时会发生什么情况。

是!对你提供的文章肯定有帮助!非常感谢。我很高兴这有帮助!