达梦数据库中的动态性能视图能自动收集数据库中的一些活动信息,系统管理员根据这些信息可以了解数据库运行的基本情况,为数据库的维护和优化提供依据。动态性能视图信息也是数据库中数据字典的一部分,与我们平常所说的数据字典不同的是,平常意义上的数据字典是指静态数据字典信息,也即用户访问数据字典信息时,内容不会发生改变,而动态视图信息是随着数据库的运行随时更改,具有一定的即时性。
系统管理员为了更好地了解数据库的一些运行时信息,可以查询动态视图表。首先系统管理员需要知道达梦数据库中提供了多少动态视图,有哪些类型动态视图,以及这些动态视图的用途是什么。
动态视图表与静态字典信息表命名方式不同,静态字典表一般以 SYS 为前缀,如系统表 SYSINDEXES,而动态视图则以 V$为前缀,如 V$DM_INI。
在 DM8 中,动态视图提供的系统信息主要分为以下几个方面:
- 系统信息
包括数据库版本、实例统计信息、资源限制信息、进程信息、全局索引 IID 信息、事件信 息 ; 涉 及 的 动 态 视 图 有 V$SESSIONS 、V$INSTANCE 、 V$RESOURCE_LIMIT 、V$PROCESS、 V$IID、 V$SYSSTAT 等。
- 存储信息
包括数据库信息、表空间信息、数据文件信息、日志相关信息;涉及的动态视图有V$DATAFILE、 V$DATABASE、 V$TABLESPACE、V$HUGE_TABLESPACE、 V$RLOGFILE等。
- 内存管理信息
包括内存池使用情况、 BUFFER 缓冲区信息、虚拟机信息、虚拟机栈帧信息;涉及的动态视图有 V$MEM_POOL、 V$VMS、 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 等。
- 事务信息
包括所有事务信息、当前事务可见的事务信息、事务锁信息(TID 锁、对象锁)、回滚段信息、事务等待信息;涉及的动态视图有 V$TRX、 V$TRXWAIT、 V$TRX_VIEW、 V$LOCK、V$PURGE 等。
- 线程信息
包括所有活动线程信息、线程作业信息、线程锁信息、线程的资源等待信息;涉及的动态视图有 V$THREADS、 V$LATCHES 等。
- 历史模块
包括 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$SQL_HISTORY、 V$SQL_NODE_HISTORY、V$SQL_NODE_NAME等。
- 缓存信息
包括 SQL 语句缓存、执行计划缓存、结果集缓存、字典缓存信息、字典缓存中的对象信息、代价信息;涉及的动态视图有 V$CACHEITEM、 V$SQL_PLAN、 V$CACHERS、V$CACHESQL、 V$DICT_CACHE_ITEM、 V$DICT_CACHE 等。
- 会话信息
包括连接信息、会话信息;涉及的动态视图有 V$CONNECT、 V$STMTS、 V$SESSIONS等。
查看动态视图可以不单单只查询一个动态视图表,还可利用动态视图表之间的联系得到更多想要的信息。
例如,系统管理员如果要对一条 SQL 语句进行调优,需要知道每个执行节点花费了多少 时 间 , 查 询 V$SQL_NODE_NAME 可 以 知 道 执 行 节 点 的 名 字 , 查 询V$SQL_NODE_HISTORY 可以查询到每个执行节点的时间,通过两个动态视图表的执行节点类型 TYPE$字段做等值连接。