sys.dm_os_process_memory (Transact-SQL)

适用于:SQL Server Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

归因于 SQL Server 进程空间的大多数内存分配都通过允许跟踪和记帐这些分配的接口进行控制。 但是,可以在 SQL Server 地址空间中执行内存分配,以绕过内部内存管理例程。 值是通过调用基本操作系统获取的。 它们不会由 SQL Server 内部的方法操作,除非它针对锁定或大型页面分配进行调整。

所有指示内存大小的返回值均以千字节 (KB) 表示。 列total_virtual_address_space_reserved_kb是sys.dm_os_sys_info virtual_memory_in_bytes的副本

下表对进程地址空间作了完整的说明。

注意

若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此功能,请使用名称 sys.dm_pdw_nodes_os_process_memory。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 描述
physical_memory_in_use_kb bigint 指示以 KB 表示的进程工作集(由操作系统报告),以及使用大型页 API 完成的跟踪分配。 不可为 Null。
large_page_allocations_kb bigint 指定通过使用大型页 API 分配的物理内存。 不可为 Null。
locked_page_allocations_kb bigint 指定内存中锁定的内存页面。 不可为 Null。
total_virtual_address_space_kb bigint 指示虚拟地址空间的用户模式部分的总大小。 不可为 Null。
virtual_address_space_reserved_kb bigint 指示进程保留的虚拟地址空间的总量。 不可为 Null。
virtual_address_space_committed_kb bigint 指示已提交或已映射到物理页的已保留虚拟地址空间量。 不可为 Null。
virtual_address_space_available_kb bigint 指示当前可用的虚拟地址空间量。 不可为 Null。

注意: 可用区域小于分配粒度。 这些区域不可进行分配。
page_fault_count bigint 指示 SQL Server 进程产生的页错误数。 不可为 Null。
memory_utilization_percentage int 指定工作集中的已提交内存所占的百分比。 不可为 Null。
available_commit_limit_kb bigint 指示可供进程提交的内存量。 不可为 Null。
process_physical_memory_low bit 指示进程正在响应物理内存不足的通知。 不可为 Null。
process_virtual_memory_low bit 指示检测到虚拟内存不足的情况。 不可为 Null。
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

此分发所在节点的标识符。

权限

在 SQL Server 上,需要对服务器具有 VIEW SERVER STATE 权限。

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在SQL 数据库基本、S0S1 服务目标以及弹性池中的数据库、服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

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

另请参阅

动态管理视图和函数 (Transact-SQL)
与 SQL Server 操作系统相关的动态管理视图 (Transact-SQL)