select c.idxname,a.tabname,b.colname as column_name
from systables a ,syscolumns b ,sysindexes c
where a.tabid = b.tabid
and a.tabid = c.tabid
and ( b.colno = c.part1 or b.colno = c.part2 or b.colno = c.part3 or b.colno = c.part4
or b.colno = c.part5 or b.colno = c.part6 or b.colno = c.part7 or b.colno = c.part8
or b.colno = c.part9 or b.colno = c.part10 or b.colno = c.part11 or b.colno = c.part12
or b.colno = c.part13 or b.colno = c.part14 or b.colno = c.part15 or b.colno = c.part16)
and c.idxname =
order by c.idxname
查找业务表主键信息SQL
select
o.constrname,
i.idxname,
t.tabname,
(select c1.colname from syscolumns c1 where c1.colno=abs(i.part1) and o.tabid=c1.tabid)||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part2 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part2 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part3 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part3 ) and o.tabid=c1.tabid) ,'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part4 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part4 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part5 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part5 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part6 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part6 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part7 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part7 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part8 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part8 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part9 ) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part9 ) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part10) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part10) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part11) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part11) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part12) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part12) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part13) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part13) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part14) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part14) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part15) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part15) and o.tabid=c1.tabid),'')||
nvl2((select c1.colname from syscolumns c1 where c1.colno=abs(i.part16) and o.tabid=c1.tabid),','||(select c1.colname from syscolumns c1 where c1.colno=abs(i.part16) and o.tabid=c1.tabid),'') collist
from sysconstraints o,sysindexes i,systables t
where o.constrtype='P'
and o.idxname=i.idxname
and o.tabid=t.tabid
and t.tabname='t103';
查找所有业务表名SQL
select tabname from systables where tabid>99 and tabtype='T';
查看dbspace下数据库和表的占用情况
select c.name dbspace,b.dbsname database,b.tabname,
round(sum(d.pe_size)*2/1024) size_1m
from systabinfo a,systabnames b,sysdbspaces c,sysptnext d
where a.ti_partnum = b.partnum and
b.partnum = d.pe_partnum and
partdbsnum(a.ti_partnum)=c.dbsnum
and b.dbsname=<表空间名称>
group by 1,2,3
order by 4 desc
select c.name dbspace,b.dbsname database
from systabinfo a,systabnames b,sysdbspaces c
where a.ti_partnum = b.partnum and
partdbsnum(a.ti_partnum)=c.dbsnum
and b.dbsname='rootdbs';
查看库容量
select t1.dbsname,
format_units(sum(ti_nptotal),max(ti_pagesize)) allocated_size,
format_units(sum(ti_npused),max(ti_pagesize)) used_size
from systabnames t1, systabinfo t2,sysdatabases t3
where t1.partnum = t2.ti_partnum
and trim(t3.name)=trim(t1.dbsname)
group by dbsname
order by sum(ti_nptotal) desc;
计算所有库总容量
SELECT FORMAT_UNITS(SUM(totalSize)) AS totalSizeSum
FROM (SELECT dbsname AS dbname, SUM(ti_pagesize * ti_nptotal) AS totalSizeFROM sysmaster:systabinfo iJOIN sysmaster:systabnames t ON i.ti_partnum = t.partnumGROUP BY dbsname
) AS inner_query;
查看表所在库和表空间
select c.name dbspace,b.dbsname database
from sysmaster:systabinfo a,sysmaster:systabnames b,sysmaster:sysdbspaces c,sysmaster:systabnames d
where a.ti_partnum = b.partnum and b.partnum = d.partnum and
sysmaster:partdbsnum(a.ti_partnum)=c.dbsnum
and d.tabname='taarea4'
获取当前库名
select dbinfo("dbname") from sysmaster:sysdual;
获取实例名
select dbservername from dual;
查询当前登录用户,实例名以及数据库名信息。
select a.cf_original, DBINFO('dbname') dbname,user user from sysmaster:sysconfig a where cf_name ='DBSERVERNAME';
查看库字符集信息
select * from sysmaster:sysdbslocale
查看所有数据库
select * from sysmaster:sysdatabases
查看各个表空间page使用情况的sql
select name[1,8] dbspace,
sum(chksize) Pages_size,
sum(chksize) - sum(nfree) Pages_used,
sum(nfree) Pages_free,
round ((sum(nfree)) / (sum(chksize)) * 100, 2) percent_free
from sysdbspaces d, syschunks c where d.dbsnum = c.dbsnum
group by 1 order by 1;
查看哪些库存放在哪些表空间上
select a.name as db_name,b.name as space_name
from sysmaster:sysdatabases a,sysmaster:sysdbspaces b
where trunc(a.partnum/1048576)= b.dbsnum
select * from sysmaster:sysdatabases;select dbinfo('dbspace',partnum) from sysdual; 将partnum转换成对应的dbspace 名称
分区表查询在某一个分区的具体数据条数
select t.tabname, f.partition,p.nrows
from systables t,sysfragments f, sysmaster:sysptnhdr p
where f.partn = p.partnum
and t.tabid = f.tabid
and f.fragtype ='T'
and t.tabname ='tf'
查询表和字段的注释
SELECT
b.tabname,
a.comments AS tab_comment,
c.colname,
d.comments AS col_comment
FROM
syscomms a ,
systables b,
syscolumns c,
syscolcomms d
WHERE
a.tabid=b.tabid
AND a.tabid=c.tabid
AND a.tabid=d.tabid
AND c.colno=d.colno;
查看数据库序列名称
SELECT t.tabname SeqName FROM Syssequences s, Systables t WHERE t.tabid = s.tabid ;
获取约束名称(P主键,R外键参考):
SELECT t.tabname, c.constrtype, c.constrname
FROM sysconstraints c, systables t
WHERE c.tabid = t.tabid
AND c.constrtype IN ('P','R')
AND t.tabname ='表名';
批量启用约束
启用
select'SET CONSTRAINTS '|| name ||' enabled;' from sysobjstate where tabid>99;
禁用
select'SET CONSTRAINTS '|| name ||'disabled;' from sysobjstate where tabid>99;
查询数据库版本:
select dbinfo('version_gbase','full') from dual;
统计信息更新具体的表
update statistics high for table tbname;
查询某个库的每张表的数据量
SELECTt.tabname AS table_name,SUM(p.nrows) AS num_rows
FROMsystables t
JOINsysmaster:sysptnhdr p ON t.partnum = p.partnum
WHEREt.tabtype ='T'AND t.tabid >=100 -- 排除系统表
GROUP BYt.tabname
ORDER BYt.tabname;
查询某个库表的总行数:
SELECTSUM(p.nrows) AS total_rows
FROMsystables t
JOINsysmaster:sysptnhdr p ON t.partnum = p.partnum
WHEREt.tabtype ='T'AND t.tabid >=100; -- 排除系统表
表空间使用率 sysmaster查询
SELECT
A.dbsnum as No,
trim(B.name) as name,
CASE
WHEN (bitval(B.flags,'0x10')>0 AND bitval(B.flags,'0x2')>0) THEN 'MirroredBlobspace'
WHEN bitval(B.flags,'0x10')>0 THEN 'Blobspace'
WHEN bitval(B.flags,'0x2000')>0 AND bitval(B.flags,'0x8000')>0 THEN 'TempSbspace'
WHEN bitval(B.flags,'0x2000')>0 THEN 'TempDbspace'
WHEN (bitval(B.flags,'0x8000')>0 AND bitval(B.flags,'0x2')>0) THEN 'MirroredSbspace'
WHEN bitval(B.flags,'0x8000')>0 THEN 'SmartBlobspace'
WHEN bitval(B.flags,'0x2')>0 THEN 'MirroredDbspace'
ELSE 'Dbspace'
END as dbstype,
CASE
WHEN bitval(B.flags,'0x4')>0 THEN 'Disabled'
WHEN bitand(B.flags,3584)>0 THEN 'Recovering'
ELSE 'Operational'
END as dbsstatus,
format_units(sum(chksize),2048) as DBS_SIZE ,
format_units(sum(decode(mdsize,-1,decode(nfree,-1,chksize-overhead,nfree),udfree)),2048) as free_size,
TRUNC(100-sum(decode(mdsize,-1,decode(nfree,-1,chksize-overhead,nfree),udfree))*100/sum(chksize),2)||'%' as used,
TRUNC(MAX(A.pagesize/1024)) as pgsize,
MAX(B.nchunks) as nchunks
FROM syschktab A, sysdbstab B
WHERE A.dbsnum = B.dbsnum
GROUP BY A.dbsnum,name, 3, 4
ORDER BY A.dbsnum;
查表名,列名,类型
SELECTt.tabname AS table_name,c.colname AS column_name,CASEc.coltype WHEN 0 THEN 'CHAR' WHEN 1 THEN 'SMALLINT' WHEN 2 THEN 'INTEGER' WHEN 3 THEN 'FLOAT' WHEN 4 THEN 'SMALLFLOAT' WHEN 5 THEN 'DECIMAL' WHEN 6 THEN 'SERIAL' WHEN 7 THEN 'DATE' WHEN 8 THEN 'MONEY' WHEN 9 THEN 'NULL' WHEN 10 THEN 'DATETIME' WHEN 11 THEN 'BYTE' WHEN 12 THEN 'TEXT' WHEN 13 THEN 'VARCHAR' WHEN 14 THEN 'INTERVAL' WHEN 15 THEN 'NCHAR' WHEN 16 THEN 'NVARCHAR' WHEN 17 THEN 'INT8' WHEN 18 THEN 'SERIAL8' WHEN 19 THEN 'SET' WHEN 20 THEN 'MULTISET' WHEN 21 THEN 'LIST' WHEN 22 THEN 'ROW (unnamed)' WHEN 23 THEN 'COLLECTION' WHEN 40 THEN 'Variable-length opaque type' WHEN 41 THEN 'Fixed-length opaque type' WHEN 43 THEN 'LVARCHAR' WHEN 45 THEN 'BOOLEAN' WHEN 52 THEN 'BIGINT' WHEN 53 THEN 'BIGSERIAL' WHEN 2061 THEN'IDSSECURITYLABEL' WHEN 4118 THEN'ROW (named)' ELSE 'UNKNOWN' END AS data_type
FROMsystables t
JOIN syscolumns c ONt.tabid = c.tabid
WHEREt.tabtype ='T' AND t.tabid >99
ORDER BYt.tabname,c.colno;
查询表,表注释,列,列注释
SELECTt.tabname AS table_name,b.comments AS table_comment,c.colname AS column_name,e.coltypename AS column_type_name,cc.comments AS column_comment
FROsystables t
JOINsyscolumns c ON t.tabid = c.tabid
LEFT JOINsyscomments b ON t.tabname = b.tabname AND t.tabtype = b.tabtype
LEFT JOINsyscolcomments cc ON t.tabname = cc.tabname AND c.colname = cc.colname
LEFT JOINsyscolumnsext e ON c.tabid = e.tabid AND c.colno = e.colno
WHEREt.tabtype ='T'AND t.tabid >99AND t.tabname IN ('flags_text')
ORDER BYt.tabname,c.colno;
外键参考所在表的名称
select t.tabname from sysconstraints c,systables t ,sysreferences r where c.tabid=t.tabid and c.constrid=r.constrid and c.constrtype='R' and r.ptabid=(select tabid from systables where tabname='act_re_procdef');