2010-10-03 14 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