2011-05-25 91 views
9

我有一個將數據導入SQL Server 2008數據庫的SSIS包。我已經在SQL Server代理中設置了計劃作業來運行該程序包。當我查看歷史時,我只能看到作業是否成功運行。除此之外,我看不到其他消息。如何在完成執行後檢查SSIS包作業結果?

我想知道在執行作業時會導入多少個記錄。我該如何監控?我應該使用SSIS包中的其他組件還是在SQL Server代理作業安裝中設置一些配置?

我在SQL Server代理作業設置中發現了一些日誌記錄工具,但我不確定它是否能滿足我的要求。

回答

19

如果您只是想了解正在處理的列,而不想對信息感興趣以備後用,一種可能的選擇是利用SSIS日誌記錄功能。以下是數據流任務的工作原理。

  1. 點擊SSIS包。
  2. 在菜單中選擇SSIS - >日誌記錄...
  3. 在配置SSIS日誌:對話框中,選擇提供程序類型,然後單擊添加。我爲此示例選擇了SQL Server。選中名稱複選框並在配置列下提供數據源。這裏SQLServer是連接管理器的名稱。 SSIS將在您選擇的數據庫中創建一個名爲dbo.sysssislog和存儲過程dbo.sp_ssis_addlogentry的表。請參閱下面的屏幕截圖#1
  4. 如果您需要處理的行,請選中複選框OnInformation。在這個例子中,程序包成功執行,因此在OnInformation下找到日誌記錄。您可能需要根據您的要求對該事件選擇進行微調。請參閱下面的屏幕截圖#2
  5. 以下是數據流任務中的示例包執行。請參閱下面的屏幕截圖#3
  6. 以下是日誌表dbo.sysssislog的示例輸出。我只顯示了列ID消息。表中還有許多其他列。在查詢中,我只對名爲'Package1'和事件'OnInformation'的包進行過濾輸出。您可以注意到帶有ID 7,14和15的記錄包含處理的行。請參閱下面的屏幕截圖#4

希望有所幫助。

截圖#1

Logging

截圖#2

Events

截圖#3

Execution

截圖#4

Data

+0

正是我在找的! ;) – 2011-09-15 12:25:16

-2

如果使用執行SQL任務插入行,則可以使用@@ ROWCOUNT變量獲取記錄計數。那麼你應該把它寫在某個地方,以便稍後閱讀報告。

0

下面是當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)」處於活動狀態。

MSDN參考:SSIS Output on Sql Agent history

0

如果已部署的包到數據庫的集成服務目錄(而不是從文件系統加載它),你可以很容易地得到詳細的報告。

在SQL Server Management Studio中打開目錄節點,右鍵單擊包名稱,選擇Reports |標準報告|所有執行並查看有關該作業及其子組件的每個步驟的詳細信息,包括導入的記錄。

相關問題