SQL Server 2005 引入全新的資料轉換服務(DTS,後更名為 SSIS),架構與 SQL 2000 差異極大。開發人員在設計封裝、部署、遷移舊專案時常遇到疑難雜症。本文整理官方技術文件與社群實務經驗,針對 20 類高頻問題提供原因分析與解決方案,幫助您快速排除阻礙。
目前精靈架構會在單一資料流建立所有來源與目的地,超過擴展性限制。Beta 3 版本將改進此問題。建議拆分為多個封裝或使用程式碼動態產生。
精靈定位為資料移動工具,非管理操作。請使用「管理」工作區的「複製資料庫精靈」複製物件。
SSMS 僅負責已部署封裝的儲存與執行管理。設計環境為 Business Intelligence Development Studio (BIDS),提供專案組織、偵錯、版控等功能。
此架構允許多封裝共用定義,獨立部署執行。
請使用正確配置的 OLE DB 連線管理員,或透過導入/導出精靈自動建立。
僅支援有限格式(不含地區化日期格式),需根據資料格式明確啟用。
功能不同,拆分可提高封裝可讀性與維護性,同理檔案系統任務與 FTP 任務亦分離。
需支援位元運算、嚴格型別系統以發揮資料流高效能。若功能不足,可用指令碼元件撰寫 VB.NET 邏輯。
資源限制,首批函數經客戶諮詢決定,後續版本會持續擴充。
資料列順序由來源決定,下游轉換(排序轉換除外)不改變順序。來源配接器若無法自動偵測中繼資料,需手動指定。
執行階段使用多執行緒平行處理,未鎖定會導致競態條件,造成結果錯誤或不穩定。即使線性封裝也可能因並行設定變更而受影響。
設計器允許刪除再重新連接路徑而不破壞封裝。元件作者可設定 DeleteOutputOnPathDetached=True 自動刪除輸出。
DTS 服務預設停用。請在「服務」中啟動「DTS 伺服器」,並可設為自動啟動。
SQL 2005 提供多種日誌提供者(文字檔、SQL Server、Windows 事件日誌等),可在「DTS」選單「記錄」中自訂。
物件模型完全重寫,舊腳本無效,需改寫為指令碼任務。
資料流任務取代資料轉換任務,功能無一對一對應。遷移精靈將舊任務包裝在 SQL 2000 封裝中,由「執行 SQL 2000 DTS 封裝任務」呼叫。
依賴舊物件模型,遷移精靈支援有限,實例會被指令碼任務取代並附註解說明,需手動修復。
Beta 2 不支援存取全域變數。
資料流任務無來源/目的地/轉換數量限制,新物件模型無法容納舊任務。
DTS 重寫為功能豐富的應用程式平台,需透過 SQL Server 安裝程式部署 DTS 引擎,確保版本一致與後續更新。
MSI 需重發二進位檔,安全性修補難以集中管理。目前部署精靈要求目標伺服器預裝 DTS,較利於管理員維護。