sys.dm_os_memory_cache_counters (Transact-SQL)

适用于:yesSQL Server (所有受支持的版本) yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

返回SQL Server中缓存运行状况的快照。 sys.dm_os_memory_cache_counters 提供有关分配的缓存项、它们的使用以及缓存条目的内存源的运行时信息。

注意:若要从 Azure Synapse Analytics 或 Analytics Platform System (PDW) 调用此名称,请使用名称sys.dm_pdw_nodes_os_memory_cache_counters。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 说明
cache_address varbinary(8) 指示与特定缓存关联的计数器的地址(主键)。 不可为 null。
name nvarchar(256) 指定缓存的名称。 不可为 null。
type nvarchar(60) 指示与该项关联的缓存的类型。 不可为 null。
single_pages_kb bigint 适用范围: SQL Server 2008 到 SQL Server 2008 R2。

已分配的单页内存量(千字节)。 这是通过单页分配器分配的内存量。 它指的是从此缓存的缓冲池中直接获取的 8 KB 页。 不可为 null。
pages_kb bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

指定缓存中分配的内存量 (KB)。 不可为 null。
multi_pages_kb bigint 适用范围: SQL Server 2008 到 SQL Server 2008 R2。

已分配的多页内存的容量(千字节)。 这是使用内存节点的多页分配器分配的内存量。 此内存在缓冲池外面分配,利用了内存节点虚拟分配器的优势。 不可为 null。
pages_in_use_kb bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

指定缓存中分配并使用的内存量 (KB)。 可以为 Null。 不跟踪类型为 USERSTORE_<*> 的对象的值。 将针对其报告 NULL。
single_pages_in_use_kb bigint 适用范围: SQL Server 2008 到 SQL Server 2008 R2。

正在使用的单页内存量(千字节)。 可以为 Null。 对于类型为 USERSTORE_<*> 的对象,此信息不会跟踪,这些值将为 NULL。
multi_pages_in_use_kb bigint 适用范围: SQL Server 2008 到 SQL Server 2008 R2。

正在使用的多页内存量(千字节)。 空。 对于类型为 USERSTORE_<*>的对象,此信息不会跟踪,这些值将为 NULL。
entries_count bigint 指示缓存中的条目数。 不可为 null。
entries_in_use_count bigint 指示缓存中正在使用的条目数。 不可为 null。
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

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

权限

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

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Azure Active Directory 管理员帐户或##MS_ServerStateReader##服务器角色中的成员身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

另请参阅

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