达梦数据库动态性能视图

1动态管理视图

达梦数据库中的动态性能视图能自动收集数据库中的一些活动信息,为数据库的维护和优化提供依据。动态视图信息是随着数据库的运行随时更改,具有一定的即时性。

想知道达梦数据库中提供了多少动态视图,有哪些类型动态视图,以及这些动态视图的用途是什么。可以通过查询V$DYNAMIC_TABLES获得所有的动态性能视图名称。

动态视图表与静态字典信息表命名方式不同,静态字典表一般以SYS为前缀,如系统表SYSINDEXES,而动态视图则以V$为前缀,如V$DM_INI。

2 使用动态管理视图

在DM8中,动态视图提供的系统信息主要分为以下几个方面:

系统信息

包括数据库版本、实例、统计信息、资源限制信息、进程信息、全局索引IID信息、事件信息;涉及的动态视图有V$SESSIONS、V$INSTANCE、V$RESOURCE_LIMIT、V$PROCESS、V$IID、V$SYSSTAT等。

例如查看数据库中实例信息。

SELECT * FROM V$INSTANCE;

结果:

NAME HOST_NAME SVR_VERSION DB_VERSION START_TIME STATUS\$ MODE\$ OGUID DSC_SEQNO DSC_ROLE

1 DMSERVER PC-201103131435 DM Database Server V7.1.2.180-Build(2013.09.13-34445trunc)

DB Version: 0x70008 2013-09-16 09:10:38 OPEN NORMAL 0 0 SLAVE

存储信息

包括数据库信息、表空间信息、数据文件信息、日志相关信息;涉及的动态视图有V$DATAFILE、V$DATABASE、V$TABLESPACE、V$HUGE_TABLESPACE、V$RLOGFILE等。

例如查询表空间信息。

  SELECT * FROM V$TABLESPACE;

结果:

ID NAME CACHE TYPE$ STATUS$ MAX_SIZE TOTAL_SIZE FILE_NUM ENCRYPT_NAME ENCRYPTED_KEY _NUM SIZE_MODE

……

7 TABLESPACE_03 NORMAL 1 0 0 32768 1 null null null null

9 TS_001 NORMAL 1 0 0 16384 1 null null null null

内存管理信息

包括内存池使用情况、BUFFER缓冲区信息、虚拟机信息、虚拟机栈帧信息;涉及的动态视图有V​MEM_POOL、VVMS、V$STKFRM、V$BUFFERPOOL、V$BUFFER_LRU_FIRST、V$BUFFER_UPD_FIRST、V$BUFFER_LRU_LAST、V$BUFFER_UPD_LAST、V$ RLOG_PKG、V$COSTPARA等。

例如查询内存池BUFFERPOOL的页数、读取页数和命中率信息。

  SELECT NAME,N_PAGES,N_LOGIC_READS,RAT_HIT FROM V$BUFFERPOOL;

结果:

行号 NAME N_PAGES N_LOGIC_READS RAT_HIT

1 KEEP 1024 0 1.0000000000E+000

2 RECYCLE 8192 52 9.8113207547E-001

3 NORMAL 1280 1772 9.2726321298E-001

4 NORMAL 8960 7 7.0000000000E-001

事务信息

包括所有事务信息、当前事务可见的事务信息、事务锁信息(TID锁、对象锁)、回滚段信息、事务等待信息;涉及的动态视图有V$TRX、V$TRXWAIT、V$TRX_VIEW、V$LOCK、V$PURGE等。

例如查询系统中上锁的事务、锁类型,以及表ID信息。

  SELECT TRX_ID,LTYPE,LMODE,TABLE_ID FROM V$LOCK;

结果:

行号 TRX_ID LTYPE LMODE TABLE_ID

---------- -------------------- ------ ----- -----------

1 1436 OBJECT IX 1311

2 1433 OBJECT IX 1310

3 1436 TID X -1

4 1433 TID X -1

线程信息

包括所有活动线程信息、线程作业信息、线程锁信息、线程的资源等待信息;涉及的动态视图有V$THREADS、V$LATCHES等。

例如查看系统中所有活动的线程信息。

  SELECT * FROM V$threads;

结果:

行号 ID NAME START_TIME THREAD_DESC

-------------------------------------------------------------------

1 9724 dm_io_thd 2017-06-28 09:26:46.000000

IO thread

2 11164 dm_io_thd 2017-06-28 09:26:46.000000

IO thread

3 3892 dm_chkpnt_thd 2017-06-28 09:26:46.000000

Flush checkpoint thread

4 9336 dm_redolog_thd 2017-06-28 09:26:46.000000

Redo log thread,used to flush log

5 3492 dm_rapply_thd 2017-06-28 09:26:46.000000

Log apply thread which receive redo-logs from primary site by standby

site

历史模块

包括SQL历史信息、SQL执行节点历史信息、检查点历史信息、命令行历史信息、线程等待历史信息、死锁历史信息、回滚段历史信息、运行时错误历史信息、DMSQL程序中执行DDL语句的历史信息、返回大数据量结果集的历史信息、所有活动过线程的历史信息;涉及的动态视图有V$CKPT_HISTORY、V$CMD_HISTORY、V$DEADLOCK_HISTORY、V$PLSQL_DDL_HISTORY、V$PRE_RETURN_HISTORY、V$RUNTIME_ERR_HISTORY、V$WAIT_HISTORY、V$WTHRD_HISTORY、V$SQL_HISTORY、V$SQL_NODE_HISTORY、V$SQL_NODE_NAME等。

例如查询系统执行的SQL历史信息。

  SELECT SESS_ID,TOP_SQL_TEXT,TIME_USED FROM V$SQL_HISTORY;

结果:

SESS_ID TOP_SQL_TEXT TIME_USED

1 187744368 INSERT INTO T1 VALUES(5,0); 21707

缓存信息

包括SQL语句缓存、执行计划缓存、结果集缓存、字典缓存信息、字典缓存中的对象信息、代价信息;涉及的动态视图有V$CACHEITEM、V$SQL_PLAN、V$CACHERS、V$CACHESQL、V$DICT_CACHE_ITEM、V$DICT_CACHE等。

例如查看字典缓存的信息。

  SELECT * FROM V$DICT_CACHE;

结果:

ADDR POOL_ID TOTAL_SIZE USED_SIZE DICT_NUM

1 0x0B56F070 1 5242880 113530 36

会话信息

包括连接信息、会话信息;涉及的动态视图有V$CONNECT、V$STMTS、V$SESSIONS等。

例如查看会话信息。

  SELECT SESS_ID,SQL_TEXT,STATE,CREATE_TIME,CLNT_HOST FROM V$SESSIONS;

结果:

SESS_ID SQL_TEXT STATE CREATE_TIME CLNT_HOST

1 187744368 SELECT SESS_ID,SQL_TEXT,STATE,CREATE_TIME,CLNT_HOST FROM V\$SESSIONS; ACTIVE 2011-09-19 19:20:38.000000 FREESKYC-FB8846

捕获信息

捕获信息涉及的视图为V$CAPTURE。

例如查看捕获信息。

  SELECT * FROM V$CAPTURE;

结果:

STATE VERSION MSG_NUM FILE_PATH INIT_TIME DURATION FLUSH_BUF_NUM FREE_BUF_NUM

1 1 0 0 1970-01-01 08:00:00 0 0 0

查看动态视图可以不单单只查询一个动态视图表,还可利用动态视图表之间的联系得到更多想要的信息。

例如,系统管理员如果要对一条SQL语句进行调优,需要知道每个执行节点花费了多少时间,查询V$SQL_NODE_NAME可以知道执行节点的名字,查询V$SQL_NODE_HISTORY可以查询到每个执行节点的时间,通过两个动态视图表的执行节点类型TYPE$字段做等值连接。

如执行一条SQL语句,然后查询其执行节点所花费时间,假设其执行ID(EXEC_ID)为4。

  SELECT * FROM t1 WHERE c1 = (SELECT d1 FROM t2 WHERE c2 = d2);

通过视图V$SQL_NODE_NAME与V$SQL_NODE_HISTORY视图查询结点执行时间:

  SELECT N.NAME, TIME_USED, N_ENTER FROM V$SQL_NODE_NAME N, V$SQL_NODE_HISTORY H WHERE N.TYPE$ = H.TYPE$ AND EXEC_ID = 4;

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
达梦数据库常⽤系统视图及查询语句 ⼀、常⽤的系统视图: 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_SESS ION_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_USE RS 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,SE GMENT_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.OBJE CT_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_AR CH_IN

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值