首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server DTS/SSIS 疑難雜症精選 FAQ (2)

     編輯:關於SqlServer

續接上集,深入探討設計時/執行時物件差異、Excel/Access 連接、WMI 任務、運算式語言、排序屬性、變數鎖定等核心議題。

資料來源與資料來源檢視僅限設計時使用

它們儲存在 BIDS/SSDT 專案中,部署後的套件無法存取。設計時,連接管理員可參考資料來源/檢視;執行時,連接管理員獨立持有所有中繼資料。這使不同套件可共用設計時定義,卻能獨立部署執行。

為何沒有專屬的 Excel/Access 資料來源類型?

請使用正確設定的 OLE DB 連接管理員(Provider: Microsoft.Jet.OLEDB.4.0 或 Microsoft.ACE.OLEDB.12.0)。匯入/匯出精靈會自動建立對應連接管理員。

WMI 資料任務 vs WMI 事件任務

  • WMI 資料任務:擷取系統管理資料(如磁碟空間、服務狀態)供控制流判斷(例:ETL 前檢查 SQL Server 是否運行)。
  • WMI 事件任務:即時回應系統事件(例:記憶體低於 50% 才啟動 ETL、偵測新檔案觸發資料流)。
  • 兩者功能正交,拆分為獨立任務以降低複雜度,類似檔案系統任務與 FTP 任務的分離。

為何運算式語言非 SQL 或 Visual Basic?

  • 需支援位元運算子(處理旗標遮罩)、嚴格資料型別(高效能記憶體管理)。
  • SQL/VB 型別系統與運算子集不符資料流高效能需求。
  • 若運算式不足,可使用指令碼元件撰寫 VB.NET/C# 邏輯。

為何某些函數不在運算式語言中?

資源限制,無法完整移植 T-SQL 函數庫。首批函數依客戶/開發者回饋決定,後續版本持續擴充。

為何排序屬性必須在來源配接器設定,而非合併等下游元件?

資料列順序在來源端確立,多數轉換不改變順序(排序轉換除外)。來源配接器若能從中繼資料辨識順序會自動設定;否則需開發者手動指定 SortKeyPosition。

為何必須鎖定變數?

SSIS 執行引擎為平行化效能會使用多執行緒。未鎖定變數會導致競爭條件,症狀從「間歇性失敗」到「結果錯誤」。即使線性套件,若修改迴圈平行屬性也可能觸發。鎖定確保執行緒安全存取。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved