2014-10-09 55 views
1

使用SSIS - VS 2008 的Microsoft SQL Server 2008 R2(SP2) - 10.50.4000.0(X64)SSIS fastload與目標禁用索引不起作用

我試圖用一個臨時表做批量更新。臨時表是我的目標表的精確模式副本。我已閱讀過索引可能會妨礙使用fastload選項上傳到臨時表的性能。所以我在數據流任務之前禁用索引,並在之後重建索引。 但是我的SSIS包在運行時驗證失敗。看來我無法對禁用索引的臨時錶快速加載。這是錯誤消息我recive: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包的工作原理。

問題是這應該與索引禁用或只是不好的建議?指令中是否存在缺少可以使插入與禁用索引一起工作的內容?

+0

這是因爲你已經在你的表上創建了一個聚集鍵。在引用的文章中,dbo.Stage_RowversionExport是一個非聚集索引的堆 – billinkc 2014-10-09 13:52:35

+0

@billinkc 有很好的捕獲,thx!我會修改我的問題,刪除不必要的絨毛,如果你想然後作爲anwser發帖,我會將其標記爲已接受.. – Voysinmyhead 2014-10-10 13:20:11

回答

0

要使用SSIS'快速加載選項的目標表(在本例中爲臨時表)可以事先禁用索引,但只有在索引是非羣集時才能使用。在我的具體情況中,我製作了一個主鍵的模式副本,這意味着它有一個聚簇索引。我刪除了登臺表上的主鍵,並使用相同的列創建了非集羣索引。