Java教程

达梦数据库常用系统视图及查询语句

本文主要是介绍达梦数据库常用系统视图及查询语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、常用的系统视图:

dba_objects:显示数据库中所有的对象,例如想查询数据库中有没有某个对象
v$sessions:显示会话的具体信息,如执行的 sql 语句、主库名、当前会话状态、用户名等等
v$lock:查看当前数据库中锁的信息
v$mem_pool:显示所有的内存池信息
V$deadlock_histor::记录死锁的历史信息
V$TABLESPACE:显示表空间信息,不包括回滚表空间信息
V$TRX:显示所有活动事务的信息。通过该视图可以查看所有系统中所有的事务以及相关信息,如锁信息等。

二、常用查询语句

1、查询数据库在线实例信息

select distinct NAME, HOST_NAME, SVR_VERSION, DB_VERSION, START_TIME, STATUS$, MODE$ from V$INSTANCE;

2、查看数据库常用参数值

select  PARA_NAME,PARA_VALUE FROM  V$DM_INI WHERE PARA_NAME IN('MEMORY_POOL','BUFFER','PORT_NUM','MAX_SESSIONS','MAX_SESSION_STATEMENT','INSTANCE_NAME','BAK_PATH','SYSTEM_PATH','ARCH_INI');

3、查询数据库初始化配置

select SF_GET_PAGE_SIZE() page_size, SF_GET_EXTENT_SIZE() extent_size, SF_GET_UNICODE_FLAG() unicode_flag, SF_GET_CASE_SENSITIVE_FLAG() case_sensitive_flag, SF_GET_SYSTEM_PATH() system_path;

4、查询数据库名称、数据库总大小、数据库是否启用归档

select NAME,STATUS$,ARCH_MODE, TOTAL_SIZE from SYS.V$DATABASE;

5、查询数据库连续运行时间

select (SYSDATE-START_TIME)*24 FROM V$INSTANCE;

6、查询数据库管理用户状态,默认表空间,是否存在被锁定

select D.USERNAME,A.CREATED,D.ACCOUNT_STATUS,D.DEFAULT_TABLESPACE,D.EXPIRY_DATE,D.LOCK_DATE FROM DBA_USERS D,ALL_USERS A;

7、查询当前数据库的日志分组情况

select GROUP_ID,FILE_ID,PATH,CLIENT_PATH,RLOG_SIZE FROM SYS.V$RLOGFILE;

8、查询表空间信息

select
  T.NAME              表空间名称,
  D.PATH          	表空文件路径,
  T.TYPE$				表空间类型,
  T.STATUS$			表空间状态,
  T. FILE_NUM		包含的文件数,
  D.TOTAL_SIZE*16/1024 	总大小,
  D.FREE_SIZE*16/1024 	空闲大小,
TRUNC((TRUNC(D.TOTAL_SIZE-D.FREE_SIZE, 4)/D.TOTAL_SIZE)*100, 2) 使用率
FROM V$TABLESPACE T, V$DATAFILE D  WHERE   "GROUP_ID"=T.ID;

9、查询数据表所分配的空间大小,辅助查询表用户使用情况

select OWNER,TABLESPACE_NAME,SEGMENT_TYPE,SEGMENT_NAME,BLOCKS,BYTES/1024/1024 FROM DBA_SEGMENTS ORDER BY OWNER,SEGMENT_NAME;

10、查询表索引状态,便于确认表索引是否可用

select I.TABLE_OWNER,I.TABLE_NAME,O.OBJECT_NAME,O.OBJECT_TYPE,O.STATUS FROM USER_INDEXES I,USER_OBJECTS O WHERE O.OBJECT_NAME=I.INDEX_NAME AND O.STATUS='INVALID';

11、查询数据库归档信息

select ARCH_TYPE,ARCH_DEST FROM V$DM_ARCH_INI;
select ARCH_NAME, ARCH_TYPE, ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_TIMER_NAME, ARCH_IS_VALID from SYS.V$DM_ARCH_INI;

12、查询会话信息

select  A.SESS_ID,A.SQL_TEXT,A.STATE,A.N_USED_STMT,A.CURR_SCH,
A.USER_NAME,A.TRX_ID,A.CREATE_TIME,A.CLNT_TYPE,A.TIME_ZONE,A.OSNAME,A.CONN_TYPE, B.PROTOCOL_TYPE,B.IP_ADDR FROM  SYS.V$SESSIONS A,SYS.V$CONNECT B where  A.Sess_id= B.SADDR ORDER BY SF_GET_EP_SEQNO(A.rowid),A.Sess_id;

13、查询会话数量

(1)当前活动会话数:
select COUNT(*) FROM V$SESSIONS WHERE STATE='ACTIVE';
(2)当前总会话数:
select COUNT(*) FROM V$SESSIONS;
(3)可用会话数=系统允许最大并发会话数-数据库当前会话数;
select PARA_VALUE-(SELECT COUNT(*) FROM V$SESSIONS) FROM V$DM_INI WHERE PARA_NAME='MAX_SESSIONS';
(4)会话使用率:
select (SELECT COUNT(*) FROM V$SESSIONS)/PARA_VALUE * 100||'%' FROM V$DM_INI WHERE PARA_NAME='MAX_SESSIONS';

14、事务监控

select  ID, STATUS,ISOLATION,READ_ONLY,SESS_ID,INS_CNT,DEL_CNT,UPD_CNT,UPD_INS_CNT,UREC_SEQNO,WAITING FROM SYS.V$TRX;

15、查询等待事件的具体信息

select THREAD_ID,TRX_ID,WAIT_CLASS,WAIT_OBJECT,WAIT_START,WAIT_TIME, SPACE_ID,FILE_ID,PAGE_NO FROM V$WAIT_HISTORY;

16、查询作业信息

select J.NAME,J.ENABLE,J.USERNAME,J.CREATETIME,S.DURING_START_DATE FROM SYSJOB.SYSJOBSCHEDULES S,SYSJOB.SYSJOBS J WHERE S.JOBID=J.ID;

17、查询数据库作业任务的执行历史

select NAME,STEPNAME,STATUS,ERRCODE,ERRINFO,CUR_TIME,RETRY_ATTEMPTS FROM SYSJOB.SYSJOBHISTORIES;

18、显示系统统计信息,查看数据库性能数据

select NAME,STAT_VAL FROM V$SYSSTAT WHERE NAME IN('logic read count','physical read count','physical write count');

19、查询缓冲区命中率信息

select NAME,N_PAGES,N_LOGIC_READS, N_PHY_READS ,RAT_HIT FROM V$BUFFERPOOL;

20、查询数据字典命中率

select USED_SIZE,TOTAL_SIZE,(USED_SIZE/TOTAL_SIZE)*100 as HIT FROM V$DICT_CACHE;

21、显示日志文件刷新的SLOT对象信息

select CKPT_RLOG_SIZE,CKPT_LSN,CKPT_INTERVAL,CKPT_FILE,LAST_BEGIN_TIME,LAST_BEGIN_TIME,(LAST_END_TIME-LAST_BEGIN_TIME)AS LAST_USED_TIME FROM V$CKPT;

22、显示执行SQL的历史记录信息

select SQL_ID,SESS_ID,SESS_SEQ,TRX_ID,TOP_SQL_TEXT,START_TIME,TIME_USED,N_LOGIC_READ,N_PHY_READ,HARD_PARSE_FLAG FROM V$SQL_HISTORY;

23、监控运行时错误

select DISTINCT  A.SEQNO,A.SESS_ID,A.TRX_ID, A.SQL_TEXT,A.SU_FLAG,A.ECPT_CODE,A.ECPT_DESC,A.ERR_TIME,B.USER_NAME,B.CLNT_IP,B.APPNAME FROM SYS.V$RUNTIME_ERR_HISTORY A, SYS.V$SESSION_HISTORY B;

24、查询环境运行慢于5秒的SQL

select * from (SELECT sess_id,sql_text,datediff(ss,last_send_time,sysdate) ss,SF_GET_SESSION_SQL(SESS_ID) fullsql FROM V$SESSIONS WHERE STATE='ACTIVE' and sess_id <> sessid())where ss>=1;
--ss>=1表示1秒及以上的慢SQL,可以替换成其他时间;

25、出现死锁的解决办法

select O.OBJECT_NAME ,S.SESS_ID,S.SQL_TEXT,L.ADDR,L.TRX_ID,L.LTYPE,L.LMODE,L.BLOCKED,L.TABLE_ID,L.ROW_IDXFROM V$LOCK L,DBA_OBJECTS O,V$SESSIONS S
WHERE L.TABLE_ID=O.OBJECT_ID AND L.TRX_ID=S.TRX_ID AND L.BLOCKED=1;
--清除阻塞SQL;
 SP_CLOSE_SESSION(上述查到的SESS_ID);
这篇关于达梦数据库常用系统视图及查询语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!