慢跑包

时间:2010-10-03 12:06:20

标签: sql-server ssis

大家好,

我有SSIS软件包,每晚运行以将数据从AS400移动到SQL Server 2005.从过去几个月开始,我的软件包耗费更多时间来完成作为预定作业。如果我手动运行相同的包,它们正常完成。在我的所有ssis包中,我将截断sql server中的数据,然后在这些表中批量插入数据。即使我在这些表上有很多非聚集索引。 在执行批量插入SSIS包之前是否需要删除这些表上的所有索引?一旦包成功,我必须创建非聚簇索引,以便可以解决包的性能和耗时约束。我不确定这是不是问题,请指导我解决这个问题

2 个答案:

答案 0 :(得分: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每个步骤所花费的时间,以确定哪个步骤最慢,然后决定如何改进。目前,没有数据,你真的在​​黑暗中拍摄

答案 1 :(得分:0)

我使用OLEDB目标获得了良好的插入速度,数据访问模式=表或视图快速加载

您可以使用表锁定选项,检查约束等。

相关问题