在目标上禁用索引的SSIS快速加载不起作用

时间:2014-10-09 13:41:43

标签: sql sql-server sql-server-2008 ssis

使用SSIS - VS 2008 Microsoft SQL Server 2008 R2(SP2) - 10.50.4000.0(X64)

我正在尝试使用临时表进行批量更新。登台表是目标表的精确模式副本。我已经读过,Indexes可以使用fastload选项阻碍上传到临时表的性能。所以我在数据流任务之前禁用索引并在之后重建索引。  但是我的SSIS包在运行时验证时失败了。似乎我无法在禁用索引的情况下快速加载到临时表。这是我收到的错误消息:The query processor is unable to produce a plan because the index 'PK_StagingTable' on table or view 'StagingTable' is disabled."

如果我删除了禁用索引的命令(步骤3变为truncate table StagingTable),那么SSIS包就可以工作。

问题是,这是否适用于已禁用的索引,或者只是错误的建议?说明中是否缺少允许插入禁用索引的内容?

1 个答案:

答案 0 :(得分:0)

您要使用SSIS'目标表(在本例中为临时表) fastload选项on可以预先禁用索引,但只有在索引是非群集的情况下才会起作用。在我的特定情况下,我创建了一个具有主键的模式副本的表,这意味着它具有聚集索引。我删除了临时表上的主键,并使用相同的列创建了非聚集索引。