sys.syscacheobjects (Transact-SQL)

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

重要说明重要提示

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

列名

数据类型

说明

bucketid

int

存储桶 ID。该值表示从 0 到(目录大小 - 1)的范围。目录大小为哈希表的大小。

cacheobjtype

nvarchar(17)

缓存中的对象类型:

  • 编译计划

  • 可执行计划

  • 分析树

  • 游标

  • 扩展存储过程

objtype

nvarchar(8)

对象的类型:

  • 存储过程

  • 预定义语句

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

  • ReplProc(复制过程)

  • 触发器

  • 视图

  • 默认值

  • 用户表

  • 系统表

  • 检查

  • 规则

objid

int

用于在缓存中查找对象的主键之一。这是存储在 sysobjects 中的数据库对象(过程、视图、触发器等)的对象 ID。对于缓存对象(如特殊或已准备好的 SQL),objid 为内部生成的值。

dbid

smallint

在其中编译缓存对象的数据库 ID。

dbidexec

smallint

执行查询的数据库 ID。

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

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

对于即席查询,dbidexec 是 0。这意味着 dbidexec 有与 dbid 相同的值。

uid

smallint

表示特殊查询计划和已准备好的计划的计划创建者。

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

如果用户数和角色数超过 32,767,则会溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录

refcounts

int

引用该缓存对象的其他缓存对象数。计数 1 为基数。

usecounts

int

自开始以来使用该缓存对象的次数。

pagesused

int

缓存对象占用的页数。

lasttime

bigint

仅为保持向后兼容性。始终返回 0。

maxexectime

bigint

仅为保持向后兼容性。始终返回 0。

avgexectime

bigint

仅为保持向后兼容性。始终返回 0。

lastreads

bigint

仅为保持向后兼容性。始终返回 0。

lastwrites

bigint

仅为保持向后兼容性。始终返回 0。

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

表示缓存对象是否是游标计划。目前只使用最小的有效位。

sqlbytes

int

过程定义或提交的批处理的长度(以字节为单位)。

sql

nvarchar(3900)

模块定义或提交的批处理的前 3900 个字符。