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) | 对象的类型: 存储过程 预定义语句 即席查询(从 sqlcmd 或 osql 实用工具(而不是远程过程调用)中作为语言事件提交的 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 个字符。 |