2017-05-08 128 views
1

我在SSIS包中有'執行SQL任務'組件。查找'執行SQL任務'組件執行服務器(SQL Server集成服務)

Connection manager: 'Server A' 
Database: Finance_Warehouse 
SQL Query: SELECT batch_date FROM Finance_Warehouse.etl_audit WHERE 
    curr_batch_ind IS NULL 
SSIS Package: Runs from Server B 

我的問題:當我執行SSIS包 '服務器B',其中將 '執行SQL任務' 組件SQL查詢運行?服務器A或服務器B?

另外,如何驗證(在哪個服務器上運行此組件/ SQL查詢)?

我的假設是,它將在'服務器A'上運行,因爲SQL Server安裝在'服務器A'中,但是尋找專家的肯定答案。

由於提前,

跟蹤細節:

trace details

+1

的ConnectionManager指向一個特定的數據庫,你的查詢將在該數據庫上運行。 – observer

+0

感謝您的評論。有沒有一個選項可以看到它被執行的地方?報告/日誌等? – Ash

+0

SELECT db_name(); – observer

回答

1

它將在服務器A中運行,您可以通過在包運行時運行profiler/trace來查看該服務器。

(或)

您也可以使用DMV。如果結果顯示包中存在的查詢,那麼執行查詢的服務器就會在包運行時在服務器A或服務器B中運行以下查詢。

SELECT sqltext.TEXT, 
req.session_id, 
req.status, 
req.command, 
req.cpu_time, 
req.total_elapsed_time 
FROM sys.dm_exec_requests req 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 

參考鏈接:https://blog.sqlauthority.com/2009/01/07/sql-server-find-currently-running-query-t-sql/

+0

嗨,謝謝你的迴應。我運行跟蹤並試圖瞭解運行查詢的位置。我應該查看ServerName還是HostName?我無法在此處添加屏幕截圖。所以,附在我的主要問題上。另外,有沒有辦法同時監控服務器A和服務器B的CPU? – Ash

+0

HostName - 查詢正在運行的計算機的名稱。 –

+0

通過添加DMV代碼編輯主帖。 –

0

這取決於你如何設置你的任務的旁路性能。

將「BypassPrepare」屬性設置爲true表示準備(解析)查詢是由您要連接的數據庫引擎完成的。否則,準備工作將由集成服務包完成。

+0

謝謝你的迴應。那麼,它是用來解析查詢的。我正在尋找證據來查看查詢的執行位置。 – Ash