系统表学习二

【环境】

MS Sql 2000

PS:Ms Sql 2005同样有以下系统表,但兼容包含此 Microsoft SQL Server 2000 系统表体现了向后兼容性。 建议您改用目录视图。

【系统表】

1、

syslockinfo
包含有关所有已授权、正在转换和正在等待的锁请求的信息。此表是锁管理器内部数据结构的非规范化表格格式视图,只存储在 master 数据库中。

常用字段:

rsc_dbid

--smallint

--与资源关联的数据库 ID。
rsc_indid

--smallint

--与资源关联的索引 ID(如果适合)。
rsc_objid

--int

--与资源关联的对象 ID(如果适合)。
rsc_type

--tinyint

--资源类型。可以是:
1 = NULL 资源(未使用)。
2 = 数据库。
3 = 文件。
4 = 索引。
5 = 表。
6 = 页。
7 = 键。
8 = 扩展盘区。
9 = RID(行 ID)。
10 = 应用程序。

req_mode

--tinyint

--锁请求模式。该列是请求者的锁模式,并且代表已授权模式,或代表转换或等待模式。可以是:
0 = NULL。不授权访问资源。用作占位符。
1 = Sch-S(架构稳定性)。确保不在任何会话控制架构元素上的架构稳定性锁时除去架构元素,如表或索引。
2 = Sch-M(架构修改)。必须由任何要更改指定资源架构的会话进行控制。确保没有其它的会话正在引用指定的对象。
3 = S(共享)。授权控制会话对资源进行共享访问。
4 = U(更新)。表示在最终可能更新的资源上获取更新锁。用于防止常见形式的死锁,这类死锁在多个会话锁定资源并且稍后可能更新资源时发生。
5 = X(排它)。授权控制会话对资源进行排它访问。
6 = IS(意向共享)。表示有意将 S 锁放置在锁层次结构内的某个从属资源上。
7 = IU(意向更新)。表示有意将 U 锁放置在锁层次结构内的某个从属资源上。
8 = IX(意向排它)。表示有意将 X 锁放置在锁层次结构内的某个从属资源上。
9 = SIU(共享意向更新)。表示对有意在锁层次结构内的从属资源上获取更新锁的资源进行共享访问。
10 = SIX(共享意向排它)。表示对有意在锁层次结构内的从属资源上获取排它锁的资源进行共享访问。
11 = UIX(更新意向排它)。表示更新锁控制有意在锁层次结构内的从属资源上获取排它锁的资源。
12 = BU。由大容量操作使用。
13 = RangeS_S(共享键范围和共享资源锁)。表示可串行范围扫描。
14 = RangeS_U(共享键范围和更新资源锁)。表示可串行更新扫描。
15 = RangeI_N(插入键范围和空资源锁)。用于在索引中插入新键之前测试范围。
16 = RangeI_S。通过 RangeI_N 和 S 锁的重叠创建的键范围转换锁。
17 = RangeI_U。通过 RangeI_N 和 U 锁的重叠创建的键范围转换锁。
18 = RangeI_X。通过 RangeI_N 和 X 锁的重叠创建的键范围转换锁。
19 = RangeX_S。通过 RangeI_N 和 RangeS_S 锁的重叠创建的键范围转换锁。20 = RangeX_U。通过 RangeI_N 和 RangeS_U 锁的重叠创建的键范围转换锁。
21 = RangeX_X(排它键范围和排它资源锁)。该转换锁在更新范围中的键时使用。
 
req_status

--tinyint

--锁请求的状态。可以是:
1 = 已授予。
2 = 正在转换。
3 = 正在等待。
 
req_refcnt

--smallint

--锁引用计数。事务每次请求具体某个资源上的锁时,引用计数便增加。直到引用计数等于 0 时才能释放锁。

req_spid

--int

--请求锁的会话的内部 Microsoft® SQL Server™ 进程 ID。
req_ownertype

--smallint

--与锁关联的对象类型。可以是下列选项之一:
1 = 事务。
2 = 游标。
3 = 会话。
4 = ExSession。

注意:3 和 4 代表会话锁的特殊版本,分别跟踪数据库锁和文件组锁。
 
req_transactionID

--bigint

--用于 syslockinfo 和事件探查器事件中的唯一事务 ID。

MS Sql 2005 与事务有关的动态管理视图:sys.dm_tran_locks

2、

syscacheobjects
包含有关如何使用高速缓存的信息。syscacheobjects 属于 master 数据库。下表显示高速缓存查找键。

常用字段:

cacheobjtype

--nvarchar(34)

--高速缓存中的对象类型:
已编译计划
可执行计划
分析树
游标分析树
扩展存储过程
 
objtype

--nvarchar(16)

--对象的类型:
存储过程
准备语句
特殊查询(从 isql 或 osql 作为语言事件提交的 Transact SQL,与远程过程调用相对)
ReplProc(复制过程)
触发器
视图
默认值
用户表
系统表
检查
规则
 
objid

--int

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

--smallint

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

refcounts

--int

--引用该高速缓存对象的其它高速缓存对象数。计数 1 为基数。
usecounts

--int

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

--int

--高速缓存对象消耗的内存页数。
sql

--nvarchar(256)

--过程名称或提交批处理的前 128 个字符。

MS Sql 2005 目录视图:sys.syscacheobjects

3、

sysmessages
每个可由 Microsoft® SQL Server™ 返回的系统错误和警告分别占一行。SQL Server 在用户的屏幕上显示对错误的描述。

常用字段:

error
--int
--唯一错误号。
severity
--smallint
--错误的严重级别。
dlevel
--smallint
--仅限内部使用。
description
--nvarchar(255)
--对参数占位符错误的解释。
mslangid
--smallint
--系统消息组 ID。

Ms sql 2005 目录视图:sys.sysmessages

4、

sysprocesses
sysprocesses 表中保存关于运行在 Microsoft® SQL Server™ 上的进程的信息。这些进程可以是客户端进程或系统进程。sysprocesses 只存储在 master 数据库中。

spid

--smallint

--SQL Server 进程 ID。
kpid

--smallint

--Microsoft Windows NT 4.0® 线程 ID。
blocked

--smallint

--分块进程的进程 ID (spid)。
waittype

--binary(2)

--保留。
waittime

--int

--当前等待时间(以毫秒为单位)。当进程不处于等待时,为 0。
lastwaittype

--nchar(32)

--表示上次或当前等待类型名称的字符串。
waitresource

--nchar(32)

--锁资源的文本化表示法。
dbid

--smallint

--当前正由进程使用的数据库 ID。
uid

--smallint

--执行命令的用户 ID。
cpu

--int

--进程的累计 CPU 时间。无论 SET STATISTICS TIME ON 选项是 ON 还是 OFF,都为所有进程更新该条目。
physical_io

--int

--进程的累计磁盘读取和写入。
memusage

--int

--当前分配给该进程的过程高速缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。
login_time

--datetime

--客户端进程登录到服务器的时间。对于系统进程,是存储 SQL Server 启动发生的时间。
last_batch

--datetime

--客户端进程上次执行远程存储过程调用或 EXECUTE 语句的时间。对于系统进程,是存储 SQL Server 启动发生的时间。
ecid

--smallint

--用于唯一标识代表单个进程进行操作的子线程的执行上下文 ID。
open_tran

--smallint

--进程的打开事务数。
status

--nchar(30)

--进程 ID 状态(如运行、休眠等)。
sid

--binary(85)

--用户的全局唯一标识符 (GUID)。
hostname

--nchar(128)

--工作站的名称。
program_name

--nchar(128)

--应用程序的名称。
hostprocess

--nchar(8)

--工作站进程 ID 号。
cmd

--nchar(16)

--当前正在执行的命令。
nt_domain

--nchar(128)

--客户端的 Windows NT 4.0 域(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 域。
nt_username

--nchar(128)

--进程的 Windows NT 4.0用户名(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 用户名。
net_address

--nchar(12)

--指派给每个用户工作站上的网络接口卡唯一标识符。当用户登录时,该标识符插入 net_address 列。
net_library

--nchar(12)

--用于存储客户端网络库的列。每个客户端进程都在网络连接上进入。网络连接有一个与这些进程关联的网络库,该网络库使得这些进程可以建立连接。有关更多信息,请参见客户端和服务器 Net-Library。
loginame

--nchar(128)

--登录名。

Ms sql 2005 动态管理视图:sys.sysprocesses

原文地址:https://www.cnblogs.com/GoGoagg/p/1804605.html