适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric中的SQL数据库
按任务返回数据库的页分配和释放活动。
注释
此视图仅适用于 tempdb 数据库。
注释
若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_db_task_space_usage。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。
| 列名称 | 数据类型 | 说明 |
|---|---|---|
| session_id | smallint | 会话 ID。 |
| request_id | int | 会话内的请求 ID。 请求也称为批,可以包含一个或多个查询。 一个会话可以同时具有多个活动请求。 如果使用并行执行计划,则请求中的每个查询可以启动多个线程(任务)。 |
| exec_context_id | int | 任务的执行上下文 ID。 有关详细信息,请参阅 sys.dm_os_tasks (Transact-SQL)。 |
| database_id | smallint | 数据库 ID。 在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。 |
| user_objects_alloc_page_count | bigint | 此任务为用户对象保留或分配的页数。 |
| user_objects_dealloc_page_count | bigint | 此任务为用户对象释放并不再保留的页数。 |
| internal_objects_alloc_page_count | bigint | 此任务为内部对象保留或分配的页数。 |
| internal_objects_dealloc_page_count | bigint | 此任务为内部对象释放并不再保留的页数。 |
| pdw_node_id | int |
适用于:Azure Synapse Analytics、Analytics Platform System (PDW) 此分发所打开的节点的标识符。 |
Permissions
在 SQL Server 和 SQL 托管实例上,需要 VIEW SERVER STATE 权限。
在 SQL 数据库 基本、S0和 S1 服务目标上,对于 弹性池、服务器管理员 帐户、Microsoft entra 管理员 帐户或 ##MS_ServerStateReader##服务器角色 的成员身份。 在所有其他 SQL 数据库服务目标上,需要对数据库具有 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色的成员身份。
SQL Server 2022 及更高版本的权限
需要 VIEW 服务器上的 SERVER PERFORMANCE STATE 权限。
注解
此视图所报告的任何页计数均不包括 IAM 页。
在请求开始时,页计数器被初始化为零 (0)。 在请求完成时,这些值将在会话级别聚合。 有关详细信息,请参阅 sys.dm_db_session_space_usage (Transact-SQL)。
工作表缓存、临时表缓存和延迟的删除操作会影响在指定任务中分配和释放的页数。
用户对象
用户对象页计数器中包括下列对象:
用户定义的表和索引
系统表和索引
全局临时表和索引
局部临时表和索引
数据表变量
表值函数中返回的表
内部对象
内部对象仅位于 tempdb. 内部对象页计数器中包括下列对象:
用于游标或假脱机操作以及临时大型对象 (LOB) 存储的工作表
用于哈希联接等操作的工作文件
对运行排序
物理联接
关系基数
| 从 | 到 | Relationship |
|---|---|---|
dm_db_task_space_usage.request_id |
dm_exec_requests.request_id |
一对一 |
dm_db_task_space_usage.session_id |
dm_exec_requests.session_id |
一对一 |
后续步骤
动态管理视图和函数 (Transact-SQL)
与数据库有关的动态管理视图 (Transact-SQL)
sys.dm_exec_sessions(Transact-SQL)
sys.dm_exec_requests(Transact-SQL)
sys.dm_os_tasks (Transact-SQL)
sys.dm_db_session_space_usage(Transact-SQL)
sys.dm_db_file_space_usage(Transact-SQL)