《informix sysmaster表详解》
一、实例信息
*sysconfig ————>; onconfig文件
*sysprofile————>;服务器统计信息
*syslog————>;逻辑日志
*sysvpprof————>;虚拟处理器
create table "sysmaster".sysconfig{服务器配置参数}
(
cf_id integer, {唯一数字标志符}
cf_name char(18), {onconfig参数名}
cf_flags integer, {标志,0=在视图中}
cf_original char(256), {启动时在onconfig中的值}
cf_effective char(256), {实际使用的值}
cf_default char(256) {onconfig文件中不指定时默认使用的值}
);
grant select on sysconfig to public;
create table "sysmaster".sysprofile{服务器概貌信息}
(
namechar(13),{概貌元素名}
valueinteger {当前值}
);
grant select on sysprofile to public;
create table "sysmaster".syslogs{逻辑日志信息}
(
numbersmallint, {日志文件号}
uniqid integer, {日志文件唯一ID}
sizeinteger, {日志文件页}
usedinteger, {日志文件使用的页}
is_usedinteger, {1为已用,0为未用}
is_currentinteger, {1为当前}
is_backed_upinteger, {1为备份}
is_newinteger, {1为新}
is_archivedinteger, {1为存档}
is_tempinteger, {1为临时}
flags smallint {日志文件标志}
);
grant select on syslogs to public;
create table "sysmaster".sysvpprof{虚处理器信息与统计}
(
vpidinteger, {虚拟处理器}
classchar(50, {虚拟处理器类名(cpu, adm, lio, pio等)}
usercpufloat, {用户时间unix秒数}
syscpu float {系统时间unix秒数}
);
grant select on sysvpprof to public;
二、dbspace与块信息
*sysdbspaces————>;dbspace
*syschunks————>;块
*syschkio————>;块I/O
*syschfree————>;块自由空间注:syschfree是个不支持的表
create table "sysmaster".sysdbspaces{dbspace配置}
(
dbsnumsmallint, {dbspace号}
namechar(18), {dbspace名}
ownerchar(8), {dbspace拥有者}
fchunksmallint, {dbspace第一块}
nchunkssmallint, {dbspace块数}
is_mirroredinteger, {dbspace是否镜像 1=YES,0=NO}
is_blobspaceinteger, {dbspace是否大对象空间}
is_tempinteger, {dbspace是否临时,1=YES,0=NO}
flagssmallint {dbspace标志}
);
grant select on sysdbspaces to public;
create table "sysmaster".syschunks{chunk配置}
(
chknumsmallint, {chunk号}
dbsnumsmallint, {dbspace号}
nxchknumsmallint, {dbspace中下一个块号}
chksizeinteger, {chunk中的页}
offsetinteger, {设备页偏移量}
nfreeinteger, {块中未用页数}
is_offlineinteger, {chunk是否脱机,1=YES,0=NO}
is_recoveringinteger, {chunk是否恢复,1=YES,0=NO}
is_blobchunkinteger, {chunk是否blobchunk,1=YES,0=NO}
is_inconsistent integer,{chunk是否不一致,1=YES,0=NO}
flagssmallint, {由bitbal转换的块标志}
fnamechar(128),{设备路径名}
mfnamechar(128),{镜像设备路径名}
moffsetinteger, {镜像设备偏移量}
mis_offlineinteger, {镜像是否脱机,1=YES,0=NO}
mis_recovering integer, {镜像是否恢复,1=YES,0=NO}
mflagssmallint {镜像块标志}
);
grant select on syschunks to public;
create table "sysmaster".syschfree{显示块中的未用空间块}
(
chknum integer,{ chunk number 块号 }
extnum integer,{ extent numberin chunk 块区域号 }
start integer,{ physical addr of start 开始物理地址 }
leng integer{ length of extent 区域长度 }
);
create unique index syschfreeidx on syschfree (chknum, extnum);
revoke all on syschfree from public;
grant select on syschfree to public;
sysindices
create table "sysmaster".syschkio{块设备I/O统计信息}
(
chunknumsmallint, {块号}
readsinteger, {读操作数}
pagesreadinteger, {读页数}
writesinteger, {写操作数}
pageswritteninteger, {写页数}
mreadsinteger, {镜像读操作数}
mpagesreadinteger, {镜像读页数}
mwritesinteger, {镜像写操作数}
mpageswritteninteger {镜像写页数}
);
grant select on syschkio to public;
三、数据库与表信息
*sysdatabases————>;数据库
*systabnames————>;表
*sysextents————>;表区域
*sysptprof————>;表I/O
create table "sysmaster".sysdatabase{实例中所有的数据库信息}
(
namechar(18), {数据库名}
partnuminteger, {systables表ID}
ownerchar(8), {生成者用户名}
createdinteger, {生成日期}
is_logginginteger, {无缓冲日志,1=YES,0=NO}
is_buff_loginteger, {缓冲日志,1=YES,0=NO}
is_ansiinteger, {ANSI方式数据库1=YES,0=NO}
is_nlsinteger, {NLS支持,1=YES,0=NO}
flagssmallint {指示日志的标志}
);
grant select on sysdatabase to public;
create table "sysmaster".systabnames{实例中的所有表}
(
partnuminteger,{ table id for table 表号}
dbsnamechar(18),{ database name数据库名}
ownerchar(8),{ table owner表拥有者}
tabnamechar(18),{ table name 表名}
collate char(32) { collation assoc with database 与GLS的相关性}
);
create unique index systabs_pnix on systabnames(partnum);
revoke all on systabnames from public;
grant select on systabnames to public;
create table "sysmaster".sysextents{实例中的表和每个区域}
(
dbsnamechar(18), {数据库名}
tabnamechar(18), {表名}
startinteger, {这个区域的物理地址}
sizeinteger {这个区域的长度(页数)}
);
grant select on sysextents to public;
create table "sysmaster".sysptnext{区域的信息}
(
pe_partnum integer,{ partnum for this partition这个区域的编号}
pe_extnum smallint,{ extent number区域号}
pe_phys integer,{ physical addr for this extent这个区域的物理地址}
pe_size integer,{ size of this extent这个区域的长度(页数)}
pe_log integer{ logical page for start开始逻辑页}
);
create unique index sysptnextidx on sysptnext (pe_partnum, pe_extnum);
revoke all on sysptnext from public;
grant select on sysptnext to public;
create table "sysmaster".sysptprof{表I/O概貌}
(
dbsnamechar(18), {数据库名}
tabnamechar(18), {表名 }
partnuminteger, {表编号 }
lockreqsinteger, {锁请求 }
lockwtsinteger, {锁等待 }
deadlksinteger, {死锁 }
lktoutsinteger, {锁超时 }
isreadsinteger, {读 }
iswritesinteger, {写入 }
isrewritesinteger, {改写 }
isdeletesinteger,{删除 }
bufreadsintegerinteger,{缓冲区读}
bufwritesinteger, {行冲区写}
seqscansinteger, {顺序扫描}
pagreadsinteger,{磁盘读 }
pagwritesinteger{磁盘写 }
);
grant select on sysptprof to public;
四、用户对话信息
*syssessions————————>;对话数据
*syssesprof————————>;用户统计信息
*syslocks ————————>;用户锁
*syseswts————————>;等待时间
create table "sysmaster".syssessions{用户对话与连接信息}
(
sidinteger, {对话号}
usernamechar(8), {用户名}
uidsmallint,{用户unix号}
pidinteger, {用户进程号}
hostnamechar(16),{主机名}
ttychar(16),{tty端口}
connectedinteger, {用户连接时间}
feprogramchar(16),{程序名}
pooladdrinteger, {专有对话池指针}
is_wlatchinteger, {标志1=YES,0=NO,等待锁存}
is_wlockinteger, {标志1=YES,0=NO,等待锁}
is_wbuffinteger, {标志1=YES,0=NO,等待缓冲区}
is_wckptinteger, {标志1=YES,0=NO,等待校验点}
is_wlogbufinteger, {标志1=YES,0=NO,等待日志缓冲区}
is_wtransinteger, {标志1=YES,0=NO,等待事务}
is_monitorinteger, {标志1=YES,0=NO,监视进程}
is_incritinteger, {标志1=YES,0=NO,在关键段中}
stateinteger {标志}
);
grant select on syssessions to public;
create table "sysmaster".syssesprof{用户对话性能统计}
(
sidinteger, {对话号}
lockreqsdecimal(16,0), {请求的锁}
lockshelddecimal(16,0), {锁保持}
lockwtsdecimal(16,0), {锁等待 }
deadlksdecimal(16,0), {发现的死锁}
lktoutsdecimal(16,0), {死锁超时}
logrecsdecimal(16,0), {逻辑日志记录写入}
isreadsdecimal(16,0), {读}
iswritesdecimal(16,0), {写}
isrewritesdecimal(16,0), {改写}
isdeletesdecimal(16,0), {删除}
iscommitsdecimal(16,0), {提交}
isrollbacksdecimal(16,0), {撤销}
longtxsdecimal(16,0), {长事务}
bufreadsdecimal(16,0), {缓冲区读}
bufwritesdecimal(16,0), {缓冲区写}
seqscansdecimal(16,0), {顺序扫描}
pagreadsdecimal(16,0), {页读}
pagwritesdecimal(16,0), {页写}
total_sortsdecimal(16,0), {总排序}
dsksortsdecimal(16,0), {磁盘排序}
max_sortdiskspace decimal(16,0),{排序使用的最大空间}
logspuseddecimal(16,0), {当前使用的日志字节}
maxlogspdecimal(16,0) {逻辑日志使用的最大空间}
);
grant select on syssesprof to public;
create table "sysmaster".syslocks{服务器上的锁活动}
(
dbsnamechar(18), {数据库}
tabnamechar(18), {表名}
rowidlkinteger, {索引关键字锁的行号}
keynumsmallint, {索引关键字锁的关键字号}
typeinteger, {锁拥有者对话ID}
ownerinteger, {第一个等待者对话ID}
waiterchar(4) {锁类型}
);
grant select on syslocks to public;
{*******************************************************
注:锁类型包括
*B——————>;byte lock(字节锁)
*IS——————>;intent shared lock(意图共享锁)
*S——————>;shared lock(共享锁)
*XS——————>;repeatable read shared key(可重复读共享锁)
*U——————>;update lock(更新锁)
*IX——————>;intent exclusive lock(意图独占锁)
*SIX——————>;shared intent exclusive(共享意图独占锁)
*X——————>;exclusive lock(独占锁)
*XR——————>;repreatable read exclusive(可重复读独占锁)
基本说来,这些锁类型是三种锁的组合:共享锁(S)、独占锁(X)、更新锁(U)。共享锁使其他用户也能读数据,但不能改变数据。独占锁不让其他用户共享数据。
更新锁在更新数据时不让其他用户改变数据。
IDS中可以锁定的对象包括:
*数据库——————>;每个用户打开数据库时即对数据库采用共享锁,防止别人删除正在使用的数据。这个操作显示为sysmaster数据库和sysdatabase表中的锁,rowid指向包含数据库名的记录。
*表——————>;表锁显示为表上的锁,rowid为0,keynum为0。
*页——————>;页锁显示为rowid以00结尾,即页中的所有行均锁定。
*行——————>;行锁显示实际rowid(不以00结尾)。
*键——————>;键锁显示为keynum如果行的索引需要更新,则锁在该行的索引。
********************************************************}
create table "sysmaster".sysseswts{对象等待状态与时间}
(
sidinteger, {对话ID }
reasonchar(50), {等待原因说明 }
numwaitsinteger, {这个原因的等待数 }
cumtimefloat, {这个原因的等待累计时间}
maxtimeinteger {这个原因的等待最长时间}
);
grant select on sysseswts to public;
五、不支持的表(没有建档,可能在将来版本中改变)
create table "sysmaster".systrans{用户事务}
(
tx_idinteger,{事务表指针 }
tx_logbeginteger,{事务开始的逻辑日志号 }
tx_loguniqinteger {事务中使用的当前逻辑日志号}
);
grant select on systrans to public;
create table "sysmaster".syssqexpalin{用户查询}
(
sqx_sessionidinteger, {SQL语句的对话ID,匹配onstat -u 输出}
sqx_bufreadsinteger, {SQL语句完成的缓冲区读次数}
sqx_pagereadsinteger, {SQL语句完成的页面读次数}
sqx_totsorts integer, {SQL语句完成的排序次数}
sqx_estcostinteger, {这个查询的估计成本,应与SET EXPLAIN的输出相同。注:这个成本有时偏高,但可以作为寻找坏查询的参考}
sqx_estrowsinteger, {检查这个查询返回的行,应与SET EXPALIN的输出相同}
sqx_seqscansmallint,{查询是顺序表格扫描时返回1,通常表示有问题}
sqx_srtscansmallint,{查询是排序扫描时返回1}
sqx_autoindexsmallint,{查询是表格自动索引时返回1}
sqx_mrgjoinsmallint,{查询是合并连接时返回1}
sqx_dynhashjoinsmallint,{查询是动态散列连接时返回1}
sqx_sqlstatementchar(32000){SQL语句文本}
);
grant select on syssqexplain to public;