sys.dm_os_memory_cache_entries (Transact-SQL)

适用于:SQL ServerAzure SynapseAnalytics Analytics 平台系统(PDW)

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

注意

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

列名称 数据类型 描述
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) 关联内存对象的地址。 Nullable。
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) 缓存条目的序列化表示形式。 此信息与缓存存储相关。 Nullable。
pool_id int 适用于:SQL Server 2008 R2(10.50.x)及更高版本。

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

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

权限

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

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

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