巡检查询¶
该脚本的作用是在用户需要查询神通数据库相关信息时所使用,并且查询结果已生成result.txt文本形式 以方便用户及数据库维护人员对数据库信息进行相关了解
spool result.txt
---1.数据库版本
select '1.数据库版本';
SELECT VERSION();
---2.数据库信息
select '2.数据库信息';
SELECT * FROM V_SYS_DATABASE_INFO;
---3.配置参数
select '3.配置参数';
show all;
---4.数据库占用的有效空间
select '4.数据库占用的有效空间';
select trunc(sum(size)/1024/1024)||'MB' from sys_class, v_segment_info where relid = oid;
---5.各个模式占用的有效空间
select '5.各个模式占用的有效空间';
select USENAME, sum(size) / 1024.0 / 1024 || 'M' total_space
from sys_class, v_segment_info, sys_shadow
where relid = oid
and USESYSID = RELOWNER
group by RELOWNER, USENAME;
---6.表空间
select '6.表空间';
SELECT TSNAME,TSINITSIZE,TSNEXTSIZE,TSPCTFREE,TSPCTUSED,TSFILL FROM SYS_TABLESPACE;
---7.数据文件
select '7.数据文件';
SELECT "FILE ID",
B.TSNAME,
a.path,
a.size / 1024.0 / 1024 || 'M' current_SIZE,
a.TOTALFREE / 1024.0 / 1024 || 'M' FREESIZE,
((1 - a.TOTALFREE * 1.0 / a.SIZE) * 100) "PCT_USED(%)",
a.MAXSIZE max_size,
A.NEXT / 1024.0 / 1024 || 'M' NEXTSISE,
a."CREATION TIME"
FROM V_SYS_DATAFILE_INFO a, SYS_TABLESPACE b
WHERE NAME = tsname
order by size desc;
---8.日志文件
select '8.日志文件';
SELECT * FROM v_sys_loggroup_info;
---9.用户表数目
select '9.用户表数目';
select count(*) total_table_num from sys_class where RELNAMESPACE != 11 and RELKIND = 'r';
---10.用户索引数目
select '10.用户索引数目';
select count(*) total_index_num from sys_class where RELNAMESPACE != 11 and RELKIND = 'i';
---11.用户视图数目
select '11.用户视图数目';
select count(*) total_view_num from sys_class where RELNAMESPACE != 11 and RELKIND = 'v';
---12.用户存储过程数目
select '12.用户存储过程数目';
SELECT count(*) total_procedure_num FROM SYS_PROC WHERE PRONAMESPACE != 11;
---13.用户对象信息
select '13.用户对象信息';
select USENAME,
relname,
current_size,
RELPAGES,
RELTUPLES
from (select USENAME,
relname,
trunc(size / 1024.0 / 1024 + 0.005, 2) current_size,
RELPAGES,
trunc(RELTUPLES + 0.5) RELTUPLES
from sys_class, v_segment_info, sys_shadow
where RELOWNER = USESYSID
and relid = oid
and RELNAMESPACE != 11
and RELSID != 0) order by RELTUPLES desc limit 30;
---14.IO情况
select '14.IO情况';
select BUFFERREAD,BUFFERWRITE,DATAREAD,DATAWRITE from my_storage_stats;
---15.当前session连接数
select '15.当前session连接数';
select count(*) as "连接数" from V_SYS_SESSIONS;
---16.当前表占用的磁盘空间
select '16.当前表占用的磁盘空间';
select trunc(sum(b.SIZE)/1024/1024,2)||' MB' from sys_class a,v_segment_info b where RELSID = SEGID AND RELNAMESPACE != 11 and RELKIND = 'r';
---17.当前索引占用的磁盘空间
select '17.当前索引占用的磁盘空间';
select trunc(sum(b.SIZE)/1024/1024,2)||' MB' from sys_class a,v_segment_info b where RELSID = SEGID AND RELNAMESPACE != 11 and RELKIND = 'i';