sys.dm_os_memory_cache_entries(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统(PDW)Microsoft Fabric中的SQL数据库

返回有关 SQL Server 中缓存中所有条目的信息。 使用此视图可对缓存条目进行跟踪,直至它们的关联对象。 还可使用此视图获取有关缓存条目的统计信息。

注释

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

列名称 数据类型 Description
cache_address varbinary(8) 缓存的地址。 不可为 null。
name nvarchar(256) 缓存的名称。 不可为 null。
type varchar(60) 缓存类型。 不可为 null。
entry_address varbinary(8) 缓存条目的描述符地址。 不可为 null。
entry_data_address varbinary(8) 缓存条目中用户数据的地址。

0x00000000 = 条目数据地址不可用。

不可为 null。
in_use_count int 同时使用此缓存条目的用户数。 不可为 null。
is_dirty bit 指示是否将此缓存条目标记为待删除。 1 = 标记为待删除。 不可为 null。
disk_ios_count int 创建此条目时引发的 I/O 数。 不可为 null。
context_switches_count int 创建此条目时引发的上下文开关数。 不可为 null。
original_cost int 此条目的原始开销。 此值是引发的 I/O 数、CPU 指令开销以及条目占用的内存量等的近似值。 开销越大,从缓存中删除此条目的机会越小。 不可为 null。
current_cost int 缓存条目的当前开销。 此值将在条目清除过程中更新。 重用条目时,当前开销将重置为原始值。 不可为 null。
memory_object_address varbinary(8) 关联内存对象的地址。 可以为 NULL。
pages_allocated_count bigint 适用于:SQL Server 2008 (10.0.x) 至 SQL Server 2008 R2 (10.50.x)。

存储此缓存条目的 8 KB 页的数目。 不可为 null。
pages_kb bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

此缓存条目使用的内存量 (KB)。 不可为 null。
entry_data nvarchar(2048) 缓存条目的序列化表示形式。 此信息与缓存存储相关。 可以为 NULL。
pool_id int 适用于:SQL Server 2008 R2(10.50.x)及更高版本。

与条目关联的资源池 ID。 可以为 NULL。
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

此分发所打开的节点的标识符。

Permissions

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

SQL Server 2022(16.x)及更高版本需要 VIEW SERVER PERFORMANCE STATE 对服务器具有权限。

在Azure SQL 数据库基本、S0 在所有其他 SQL 数据库服务目标上,需要对数据库具有 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色的成员身份。