適用於:SQL Server 2016 (13.x) 和更新版本
Azure SQL 受控執行個體
逐資料列傳回正在執行外部指令碼的每個使用中背景工作帳戶。
注意
只有在您已安裝並啟用支援外部腳本執行的功能時,才能使用此動態管理檢視 (DMV)。 如需詳細資訊,請參閱 SQL Server 2017 和更新版本中的 機器學習 Services (R、Python)、SQL Server 2016 中的 R Services,以及 Azure SQL 受控執行個體 中的 機器學習 Services。
| 資料行名稱 | 資料類型 | 描述 |
|---|---|---|
| external_script_request_id | 唯一標識碼 | 傳送外部腳本要求之進程的標識碼。 這會對應至收到 SQL 實例的進程標識碼。 |
| 語言 | nvarchar | 代表支援的指令碼語言的關鍵字。 |
| degree_of_parallelism | int | 指出已建立之平行處理序數目的數字。 這個值可能與已要求的平行處理序數目不同。 |
| external_user_name | nvarchar | 用來執行指令碼的 Windows 背景工作帳戶。 |
權限
VIEW SERVER STATE需要伺服器的許可權。
注意
執行外部文本的用戶必須具有額外的許可權,不過,系統管理員可以在沒有此許可權 EXECUTE ANY EXTERNAL SCRIPT的情況下使用此 DMV。
SQL Server 2022 和更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
備註
您可以使用文稿語言標識碼來篩選此檢視。
檢視也會傳回正在執行腳本的背景工作帳戶。 如需外部腳本所使用背景工作帳戶的相關信息,請參閱 SQL Server 機器學習 Services 中擴充性架構的安全性概觀一節。
在 [external_script_request_id] 字段中傳回的 GUID 也代表儲存暫存盤之安全目錄的檔名。 每個背景工作帳戶,例如MSSQLSERVER01,都代表單一 SQL 登入或 Windows 使用者,而且可用來執行多個腳本要求。 根據預設,這些暫存盤會在完成要求的腳本之後清除。
此 DMV 只會監視作用中的進程,且無法報告已完成的腳本。 如果您需要追蹤腳本的持續時間,建議您在腳本中新增計時資訊,並在腳本執行期間擷取該資訊。
範例
檢視特定進程的目前使用中腳本
下列範例會顯示在目前實例上執行的外部腳本執行數目。
SELECT external_script_request_id
, [language]
, degree_of_parallelism
, external_user_name
FROM sys.dm_external_script_requests;
結果
| external_script_request_id | 語言 | degree_of_parallelism | external_user_name |
|---|---|---|---|
| 183EE6FC-7399-4318-AA2E-7A6C68E435A8 | R | 1 | MSSQLSERVER01 |