sys.syscacheobjects (Transact-SQL)

适用范围:SQL Server

包含有关如何使用缓存的信息。

重要

将此 SQL Server 2000 系统表作为一个视图包含进来是为了保持向后兼容性。 建议您改用最新的 SQL Server 系统视图。 若要查找一个或多个等效系统视图,请参阅将系统表映射到系统视图 (Transact-SQL)。 后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

列名称 数据类型 描述
bucketid int 存储桶 ID。 该值表示从 0 到(目录大小 - 1)的范围。 目录大小为哈希表的大小。
cacheobjtype nvarchar(17) 缓存中的对象类型:

编译计划

可执行计划

分析树

游标

扩展存储过程
objtype nvarchar(8) 对象的类型:

存储过程

预定义语句

即席查询(从 sqlcmdosql 实用工具(而不是远程过程调用)中作为语言事件提交的 Transact-SQL)

ReplProc(复制过程)

触发器

视图

默认

用户表

系统表

检查

规则
objid int 用于在缓存中查找对象的主键之一。 这是存储在 数据库对象的 sysobject 中的 对象 ID(过程、视图、触发器等)。 对于即席或准备的 SQL 等缓存对象, objid 是内部生成的值。
dbid smallint 在其中编译缓存对象的数据库 ID。
dbidexec smallint 执行查询的数据库 ID。

对于大多数对象, dbidexec 的值与 dbid 相同。

对于系统视图, dbidexec 是执行查询的数据库 ID。

对于即席查询, dbidexec 为 0。 这意味着 dbidexec 的值与 dbid 相同。
uid smallint 表示特殊查询计划和已准备好的计划的计划创建者。

-2 = 提交的批处理不依赖于隐式名称解析并可在不同的用户间共享。 这是首选方法。 任何其他值表示数据库中提交查询的用户的用户 ID。

如果用户数和角色数超过 32,767,则发生溢出或返回 NULL。
refcounts int 引用该缓存对象的其他缓存对象数。 计数 1 为基数。
usecounts int 自开始以来使用该缓存对象的次数。
pagesused int 缓存对象占用的页数。
setopts int 影响编译计划的 SET 选项设置。 这些设置是缓存键的一部分。 该列中的值更改表示用户已修改了 SET 选项。 这些选项包括以下各项:

ANSI_PADDING

FORCEPLAN

CONCAT_NULL_YIELDS_NULL

ANSI_WARNINGS

ANSI_NULLS

QUOTED_IDENTIFIER

ANSI_NULL_DFLT_ON

ANSI_NULL_DFLT_OFF
langid smallint 语言 ID。 创建缓存对象的连接的语言 ID。
dateformat smallint 创建缓存对象的连接的日期格式。
status int 表示缓存对象是否是游标计划。 目前只使用最小的有效位。
lasttime bigint 仅为保持向后兼容。 始终返回 0。
maxexectime bigint 仅为保持向后兼容。 始终返回 0。
avgexectime bigint 仅为保持向后兼容。 始终返回 0。
lastreads bigint 仅为保持向后兼容。 始终返回 0。
lastwrites bigint 仅为保持向后兼容。 始终返回 0。
sqlbytes int 过程定义或提交的批处理的长度(以字节为单位)。
sql nvarchar(3900) 模块定义或提交的批处理的前 3900 个字符。

另请参阅

兼容性视图 (Transact-SQL)