2010-10-03 67 views
1

大家好,慢速运行的程序包

我有一个在夜间运行的基础上把数据从AS400迁移到SQL Server 2005中从过去几个月我的包消耗更多的时间来完成作为调度作业的SSIS包。如果我手动运行相同的软件包,他们正常完成。在我所有的ssis软件包中,我正在截断sql server中的数据,然后在这些表中批量插入数据。即使我在这些表上有很多非聚集索引。 在执行批量插入SSIS包之前,是否需要删除这些表上的所有索引,并且一旦包成功完成,我必须创建非聚簇索引,以便可以解决软件包的性能和耗时约束。我不知道这会是问题,请指引我解决这个问题

回答

0
From last couple of months my packages consuming more time to complete 
as a scheduled job. In all my ssis packages i am truncating the data in sql 
server then Bulk inserting data in those tables 

我认为过一段时间,你需要批量插入数据量将继续采用这种设计成长?这也许可以解释为什么工作会变得越来越慢。

Even I have lot of non clustered indexes on those tables. Do I need to drop all 
indexes on those tables before executing bulk insert SSIS packages and once the 
package is succeeded I have to create Non clustered indexes so that the 
performance and time consuming constraint of the packages can be solved 

这些索引肯定会减慢插入数据的速度。但是,它可能不仅仅是您的非聚集索引。根据用于组成聚集索引的列的值(即主键),聚集索引可能会减慢插入的速度。这可能取决于您所插入数据的顺序,可能是可以控制的。

正如您已经突出显示的那样,您可以尝试删除并重新创建索引后插入。但是,您必须考虑重新创建索引所需的时间,并查看额外的时间是否会为您带来足够的性能改进。

一般而言,我建议您首先记录DTS每一步所花的时间,以确定哪一步最慢,然后决定如何改进。目前,没有资料,你真的在​​黑暗中

+0

1.雅数据已经从最近一个月的增长,但相同的包,需要6个小时完成作为一项工作是在BIDS 2.5小时内完成,当我手动运行。我真的无法弄清楚为什么在这两次运行之间会有如此巨大的差异。 – 2010-10-03 14:39:52

+0

@Mohammed Mushtaq - 是否因为时机?在您安排这项工作时,您是否检查过数据库中发生的其他活动/工作/交易/处理?别的什么可能会锁定行/表格的问题?或者它可能只是当时在数据库中的负载。您是否曾尝试在另一个时间/日期运行该工作以了解它是如何工作的? – InSane 2010-10-03 14:54:14

+0

这是一台新格式化的服务器,除了我的软件包外没有其他大型任务正在运行。雅我试图在白天运行时遇到同样的问题。因为它在夜间运行,所以没有任何负载点。因为白天用户使用这个服务器进行MIS报告。 – 2010-10-03 15:29:24

0

拍摄我一直在使用OLEDB目的地了插入良好的速度,有数据访问模式=表或视图快速负载

您可以用表锁的选项打,检查约束等

+0

达尔朋友我已经设置了快速加载的选项谢谢你的回复 – 2010-10-08 13:29:42