sys.dm_exec_background_job_queue

对计划异步(后台)执行的每个查询处理器作业返回一行。

列名

数据类型

说明

time_queued

datetime

作业添加到队列中的时间。

job_id

int

作业标识符。

database_id

int

执行作业所在的数据库。

object_id1

int

值取决于作业类型。有关详细信息,请参阅“备注”部分。

object_id2

int

值取决于作业类型。有关详细信息,请参阅“备注”部分。

object_id3

int

值取决于作业类型。有关详细信息,请参见“备注”部分。

object_id4

int

值取决于作业类型。有关详细信息,请参见“备注”部分。

error_code

int

如果因失败而重新插入作业,则为错误代码。如果作业已挂起、未被选取或已完成,则为 NULL。

request_type

smallint

作业请求的类型。

retry_count

smallint

从队列中选取作业又因缺少资源或其他原因而将其重新插入队列的次数。

in_progress

smallint

指示作业是否已开始执行。

1 = 已启动。

0 = 仍在等待

session_id

smallint

会话标识符。

权限

需要对服务器具有 VIEW SERVER STATE 权限。

注释

该视图只返回有关异步更新统计作业的信息。有关异步更新统计的详细信息,请参阅使用统计信息提高查询性能

object_id1object_id4 的值取决于作业请求的类型。下表总结了这些列对于不同作业类型的含义。

请求类型

object_id1

object_id2

object_id3

object_id4

异步更新统计信息

表或视图的 ID

统计信息 ID

未使用

未使用

示例

以下示例为 SQL Server 实例中的每个数据库返回后台队列中活动异步作业的数量。

SELECT DB_NAME(database_id) AS [Database], COUNT(*) AS [Active Async Jobs]
FROM sys.dm_exec_background_job_queue
WHERE in_progress = 1
GROUP BY database_id;
GO