2012-10-16 128 views
1

我們需要將SP列表轉換爲SSIS包。大多數SP執行以下步驟:將存儲過程轉換爲SSIS包

  1. 創建表並使用'SELECT INTO'語句插入數據,該語句具有多個連接。
  2. 更新表 - 這也有很多聯接。
  3. 在創建的表上創建索引。

我們應該在這裏使用什麼方法?由於SP中沒有ETL,我們將每組語句轉換爲一個Execute SQL任務。這是正確的方法嗎?
我們可以做些什麼來提高軟件包的性能?
有些SP使用不同的參數多次調用另一個SP(這些參數在SP中是硬編碼的)。哪個SSIS任務適合這裏?我試着用ExecuteSQL taskRetainSameConnection爲真。

+0

將存儲的過程轉換爲SSIS包的目的是什麼? – kzhen

+0

我們被要求這樣做,因爲很長的程序不容易管理。此外,還想提高性能。我不確定是否將它轉換爲軟件包會提高性能,因爲沒有數據加載或任何複雜的轉換 – user1750002

回答

0

我們將每組語句轉換爲一個'Execute SQL'任務。這是正確的方法嗎?

不,由於您在「SSIS包」的上下文中調用存儲過程,所以您完成的任務是添加一層「長過程不易管理並且想要提高性能」您的通話費用。

如何讓它變得更好?這要取決於你正在做什麼。你一般的方法可能會像

  1. 創建源和目標OLE DB連接管理器
  2. 創建一個變量,字符串類型,並使用它來存儲正在創建
  3. 執行SQL任務表的名稱 - 這實際上創建您的目的地表。我認爲我讀過一個明確的表格聲明比用INTO語句創建一個聲明效率更高
  4. 將數據流任務連接到該執行SQL任務。使用OLE DB來源並將來源表中的源類型更改爲查詢並調用您的存儲過程。這可能需要修改爲不創建目標表。將OLE DB目標拖放到畫布上,然後將目標更改爲表格或從可變快速載入查看(名稱近似值),然後選擇上面創建的變量。
  5. 更新可能是現有邏輯最好的。只需將其放入執行sql任務中
  6. 此索引創建也將成爲執行SQL任務。

所有這些連接的事情仍然緩慢?這可能是一個調整操作。我們需要查看錶結構,查詢和估計的查詢計劃。

+0

Thanks billinkc,請嘗試。 – user1750002