核心價值
DTS (SQL 2000) / SSIS (SQL 2005+) 不僅是 ETL 工具,更是 DBA 自動化運維的瑞士刀。善用內建任務元件,可大幅減少人工值守。
妙用一:郵件通知任務
- 在套件事件處理器中配置 Send Mail Task
- 觸發條件:
OnPostExecute(成功)、OnError(失敗)
- 郵件內容可包含:套件名稱、執行時間、錯誤描述、影響範圍、處理建議
- 實現「無聲成功、有聲失敗」,DBA 只需關注異常郵件
妙用二:執行套件任務——套件串聯編排
- 使用 Execute Package Task 讓主套件呼叫子套件
- 典型場景:匯入流程拆解為
Truncate Staging → Load Dim → Load Fact → Rebuild Index → Update Stats 多個子套件
- 優點:模組化、可獨立測試、支援並行/順序控制、錯誤隔離
- 配合變數傳遞參數(如批次日期、來源路徑),實現參數化編排
妙用三:SQL Server Agent 排程自動化
- 將套件部署至
msdb 或檔案系統/SSISDB
- 建立 Agent Job,步驟類型選 SQL Server Integration Services Package
- 排程設定:每日低峰期(如 02:00)、每小時、業務驅動(啟動器)
- DBA 只需維護排程,無需人工啟動匯入流程
妙用四:大數據量高效載入
- Fast Parse / Fast Load 選項跳過格式驗證,直寫資料頁
- 批次大小 (
BatchSize):平衡記憶體與交易日誌膨脹(建議 10,000~100,000)
- 資料流引擎:緩衝區架構、並行處理、非同步 I/O,效能遠超 T-SQL 迴圈
INSERT
- 百萬級以上匯入首選 SSIS,配合
TABLOCK、MIN_LOGGING(簡單/大量記錄模式)極致優化
遷移建議:DTS → SSIS
- SQL 2000 DTS 套件可用「遷移精靈」升級,但建議重寫利用 SSIS 新架構
- SSIS 專案部署模型(Project Deployment Model,SQL 2012+)支援參數化、環境變數、版本控管
- 採用
Event Handlers 統一錯誤處理與日誌記錄
總結
DTS/SSIS 四大自動化能力——通知、編排、排程、高效載入——構成 DBA 自動化運維核心棧。善用之,讓資料庫在夜間自我維護,白天只看報表。