我有一個將數據導入SQL Server 2008數據庫的SSIS包。我已經在SQL Server代理中設置了計劃作業來運行該程序包。當我查看歷史時,我只能看到作業是否成功運行。除此之外,我看不到其他消息。如何在完成執行後檢查SSIS包作業結果?
我想知道在執行作業時會導入多少個記錄。我該如何監控?我應該使用SSIS包中的其他組件還是在SQL Server代理作業安裝中設置一些配置?
我在SQL Server代理作業設置中發現了一些日誌記錄工具,但我不確定它是否能滿足我的要求。
我有一個將數據導入SQL Server 2008數據庫的SSIS包。我已經在SQL Server代理中設置了計劃作業來運行該程序包。當我查看歷史時,我只能看到作業是否成功運行。除此之外,我看不到其他消息。如何在完成執行後檢查SSIS包作業結果?
我想知道在執行作業時會導入多少個記錄。我該如何監控?我應該使用SSIS包中的其他組件還是在SQL Server代理作業安裝中設置一些配置?
我在SQL Server代理作業設置中發現了一些日誌記錄工具,但我不確定它是否能滿足我的要求。
如果您只是想了解正在處理的列,而不想對信息感興趣以備後用,一種可能的選擇是利用SSIS日誌記錄功能。以下是數據流任務的工作原理。
希望有所幫助。
截圖#1:
截圖#2:
截圖#3:
截圖#4:
如果使用執行SQL任務插入行,則可以使用@@ ROWCOUNT變量獲取記錄計數。那麼你應該把它寫在某個地方,以便稍後閱讀報告。
下面是當SQL Server作業歷史記錄未顯示從SSIS包輸出的另一種方法:使用DTEXEC命令行。
(上行:這種方法把作業的輸出,其中任何人都支持將期望找到它:在作業歷史
下行的大包:如果你有很長的SSIS包,有很多任務或組件和大量輸出,那麼作業歷史記錄會將包輸出分成許多行作業歷史記錄,這使得上一個答案中的方法 - 記錄到表格中 - 更易於閱讀)。
顯示SSIS包輸出到作業的「查看歷史記錄」中:
(1)將作業步驟從「SQL Server Integration Services包」類型更改爲「Operating system(CmdExec)」,(2)使用DTEXEC命令行執行軟件包。命令行的
實施例:
DTExec /DTS "\MSDB\myPkgName" /DECRYPT pkgPass /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
注意,如果SSIS包需要32位執行(真導出到Excel,例如),然後使用在「程序文件的DTEXEC實用程序( x86)「,通過完全限定它。例如,在SQL Server應用程序被安裝在「E:」盤,並在SQL Server的2014年正在使用:
"E:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /DTS "\MSDB\myPkgName" /DECRYPT pkgPass /MAXCONCURRENT " -1 " /CHECKPOINTING OFF
如果您SSIS包在文件系統(如「.dtsx程序」文件) ,然後用「/ FILE」替換「/ DTS」。
如果您的SSIS包放置在SSISDB中(使用「項目部署模型」,可從SQL Server 2012開始,而不是舊的「包部署模型」),則將「/ DTS」替換爲「 ISSERVER」。
接下來,進入作業步驟的「高級」頁面,並確保該框已選中「在歷史記錄中包含步驟輸出」。
最後,考慮您的作業步驟的「運行方式」:如果您的作業步驟「運行方式」已經設置爲代理,則在類型爲「SQL Server Integration Services包」的作業步驟中,到子系統「SQL Server集成服務包」。現在,要執行類似上述的命令行,請檢查代理的屬性,並確保它也對子系統「操作系統(CmdExec)」處於活動狀態。
如果已部署的包到數據庫的集成服務目錄(而不是從文件系統加載它),你可以很容易地得到詳細的報告。
在SQL Server Management Studio中打開目錄節點,右鍵單擊包名稱,選擇Reports |標準報告|所有執行並查看有關該作業及其子組件的每個步驟的詳細信息,包括導入的記錄。
正是我在找的! ;) – 2011-09-15 12:25:16