informix数据库系统表用法介绍

本文详细介绍了数据库管理员(DBA)如何通过系统表systables、sysindexes、sysindices进行查询,包括查找普通表和分片表的partnum、rowid以及数据库的Locale等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

DBA应当对一些系统表比较熟悉,如:systablessysindexessysindices

 

 

1、通过系统表查找Partnum
1.1 查找标准表的partnum
 partnumInformix数据库内部是表的唯一标识,默认partnum是十进制的如果需要可以转为十六进制)
例如:
Dbaccess->your database
select hex(partnum) from systables where tabname='test1';
(expression)
0x001000DC
1.2、查找分片表的partnum
 (分片表的partnum比较特殊)
注:Partnum格式 3: Dbspace number, 5: Logical page number within tblspace tblspace

 

首先建立分片表:
create table "informix".test2
(
id integer,
name char(10)
) fragment by expression
(id < 10 ) in datadbs ,
((id > 20 ) AND (id < 30 ) ) in datadbs1
extent size 16 next size 16 lock mode row;
常规方法查询:
dbaccess->your database
select hex(partnum) from systables where tabname='test2';
结果:
(expression)
0x00000000
select hex(partn),tabid from sysfragments where tabid=(select tabid from systables where tabname='test2')
查询结果:
(expression)          tabid
0x00200002           101
0x00300002           101
 
2、查找rowid
rowid是确定表内行信息的数据库标识)
2.1、普通表查询rowid
select rowid from tabname
2.1、分片表查询
select rowid,id from test2;
857: Rowids do not exist on table
 
3、查找数据库的Locale
select * from sysdbslocale where dbs_dbsname='testdb';
结果:
dbs_dbsname  testdb
dbs_collate  en_US.819
 
4查找相关的constraints
alter table test1 add constraint primary key (col1);
select * from sysconstraints where tabid=(select tabid from systables where tabname='test1');
结果:
constrid    3
constrname  u100_3
owner       informix
tabid       100
constrtype  P
idxname      100_3
collation   en_US.819
如下待续,希望大家关注。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值