适用于: SQL Server 2016 (13.x) 及更高版本
返回每个计算节点每个工作者工作负载的信息。
查询 sys.dm_exec_external_work 以识别启动的工作,以便与外部数据源(例如Hadoop或MongoDB)通信。
| 列名 | 数据类型 | 说明 | 范围 |
|---|---|---|---|
| execution_id | nvarchar(32) |
关联PolyBase查询的唯一标识符。 | 详见 request_ID sys.dm_exec_requests( Transact-SQL)。 |
| step_index | int |
这个工作人员正在执行的请求。 | 详见 step_index sys.dm_exec_requests( Transact-SQL)。 |
| dms_step_index | int |
请加入这位工作人员正在执行的DMS计划。 | 参见 sys.dm_exec_dms_workers(Transact-SQL)。 |
| compute_node_id | int |
工作者运行的节点。 | 参见 sys.dm_exec_compute_nodes(Transact-SQL)。 |
| 类型 | nvarchar(60) |
外部工作的类型。 | “文件拆分”(针对 Hadoop 和 Azure 存储) “ODBC数据分流”(针对其他外部数据源) |
| work_id | int |
实际分手的身份证。 | 大于或等于0。 |
| input_name | nvarchar(4000) |
要读取的输入名称 | 使用Hadoop或Azure存储时,文件名(带路径)。 对于其他外部数据源,则是将外部数据源位置和外部表位置串接: scheme://DataSourceHostname[:port]/[DatabaseName.][SchemaName.]TableName |
| read_location | bigint |
读取位置偏移量。 |
0 为文件中的字节数减去1。NULL用于非Hadoop或非Azure存储。 |
| read_command | nvarchar(4000) |
发送给外部数据源的查询。 在 SQL Server 2019(15.x)中引入。 | 表示查询的文本。 对于 Hadoop 和 Azure,存储返回 NULL。 |
| bytes_processed | bigint |
该工作者为处理数据分配的总字节数。 该值不一定代表查询返回的总数据 | 大于或等于0。 |
| length | bigint |
分段长度,或 HDFS 块,用于 Hadoop | 用户可定义。 默认是64M |
| 状态 | nvarchar(32) |
工人身份 | 待处理,处理中,完成,失败,中止 |
| 开始时间 | datetime |
工作开始 | |
| 结束时间 (end_time) | datetime |
作品结束 | |
| total_elapsed_time | int |
总时间以毫秒计 | |
| compute_pool_id | int |
工作者运行的池的唯一标识符。 仅适用于SQL Server大数据集群。 参见 sys.dm_exec_compute_pools(Transact-SQL)。 | Windows 和 Linux 上的 SQL Server 返回0。 |
注解
从 SQL Server 2019(15.x)开始,你可以用 sys.dm_exec_external_work PolyBase 推送计算查看传递给外部数据源的远程查询。 有关详细信息,请参阅如何判断是否发生了外部下推。
另见
使用动态管理视图进行 PolyBase 故障排查
动态管理视图和函数 (Transact-SQL)
与数据库有关的动态管理视图 (Transact-SQL)