数据字典是达梦数据库创建和维护的一组只读的系统表。数据字典中存放了有关数据库和数据库对象的信息。
数据字典中存储如下数据库信息:
- 数据库的逻辑结构和物理结构,如表空间和数据文件的信息;
- 数据库对象定义信息,对象包括表、索引、视图、序列号等等;
- 数据库对象的磁盘空间分配信息;
- 权限和角色;
- 审计信息;
- 其他信息;
达梦数据库中还有另一类数据字典视图,即动态性能视图。动态性能视图是一组虚表,在数据库运行期间,这些虚表存在于内存中,达梦数据库将当前数据库的活动记录在动态性能视图。动态性能视图一般以v$开头。
可以通过动态性能视图来监督数据库的运行,诊断和调优所需要的信息。
数据字典的整理
一、数据字典视图
序列 | 视图名 | 用途 |
1 | SYSOBJECTS | 记录系统中所有对象的信息 |
2 | SYSINDEXES | 记录系统中所有索引定义信息 |
3 | SYSCOLUMNS | 记录系统中所有列定义的信息 |
4 | SYSCONS | 记录系统中所有约束的信息 |
5 | SYSSTATS | 记录系统中的统计信息 |
6 | SYSDUAL | 为不带表名的查询而设,用户一般不需查看 |
7 | SYSTEXTS | 存放字典对象的文本信息 |
8 | SYSGRANTS | 记录系统中权限信息 |
9 | SYSAUDIT | 记录系统中的审计设置 |
10 | SYSAUDITRULES | 记录系统中审计规则的信息 |
11 | SYSHPARTTABLEINFO | 记录系统中分区表的信息 |
12 | SYSMACPLYS | 记录策略定义 |
13 | SYSMACLVLS | 记录策略的等级 |
14 | SYSMACCOMPS | 记录策略的范围 |
15 | SYSMACGRPS | 记录策略所在组的信息 |
16 | SYSMACLABELS | 记录策略的标记信息 |
17 | SYSMACTABPLY | 记录表策略信息 |
18 | SYSMACUSRPLY | 记录用户的策略信息 |
19 | SYSMACOBJ | 记录扩展客体标记信息 |
20 | SYSCOLCYT | 记录列的加密信息 |
21 | SYSACCHISTORIES | 记录登录失败的历史信息 |
22 | SYSPWDCHGS | 记录密码的修改信息 |
23 | SYSCONTEXTINDEXES | 记录全文索引的信息 |
24 | SYSTABLECOMMENTS | 记录表或视图的注释信息 |
25 | SYSCOLUMNCOMMENTS | 记录列的注释信息 |
26 | SYSUSERS | 记录系统中用户信息 |
27 | SYSOBJINFOS | 记录对象的依赖信息 |
28 | SYSRESOURCES | 记录用户使用系统资源的限制信息 |
29 | SYSCOLINFOS | 记录列的附加信息,例如是否虚拟列 |
30 | SYSUSERINI | 记录定制的 INI 参数 |
31 | SYSDEPENDENCIES | 记录对象间的依赖关系 |
32 | SYSINJECTHINT | 记录已指定的 SQL 语句和对应的 HINT |
33 | SYSMSTATS | 记录多维统计信息的内容 |
二、动态性能视图
1、资源管理
序号 | 视图名 | 用途 |
1 | V$DICT_CACHE_ITEM | 显示字典缓存中的字典对象信息 |
2 | V$DICT_CACHE | 显示字典缓存信息 |
3 | V$BUFFERPOOL | 页面缓冲区动态性能表,用来记录页面缓冲区结构的信息 |
4 | V$BUFFER_LRU_FIRST | 显示所有缓冲区 LRU 链首页信息 |
5 | V$BUFFER_UPD_FIRST | 显示所有缓冲区 UPDATE 链首页信息 |
6 | V$BUFFER_LRU_LAST | 显示所有缓冲区 LRU 链末页信息 |
7 | V$BUFFER_UPD_LAST | 显示所有缓冲区 UPDATE 链末页信息 |
8 | V$CACHEITEM | 显示缓冲区中缓冲项的相关信息 |
9 | V$CACHERS | 显示结果集缓冲区的相关信息 |
10 | V$CACHESQL | 显示 SQL 缓冲区中 SQL 语句的信息。在 ini 参数 USE_PLN_POOL !=0 时才统计 |
11 | V$SQLTEXT | 显示缓冲区中的 SQL 语句信息 |
12 | V$SQL_PLAN | 显示缓冲区中的执行计划信息。在 ini 参数 USE_PLN_POOL !=0 时才统计 |
13 | V$MEM_POOL | 显示所有的内存池信息 |
14 | V$MEM_REGINFO | 显示系统当前已分配并未释放的内存信息,当 MEMORY_LEAK_CHECK 为 1 时才会在此 动态视图注册信息。 |
15 | V$GSA | 显示全局 SORT 内存缓冲区的使用情况 |
16 | V$MEM_HEAP | 显示系统当前内存堆的信息,仅当系统启动时 MEMORY_LEAK_CHECK 为 1 时有效 |
17 | V$LARGE_MEM_SQLS | 最近 1000 条使用大内存的 sql 语句。一条 sql 语句使用的内存值超过 ini 参数 LARGE_MEM_THRESHOLD,就认为使用了大内存 |
18 | V$SYSTEM_LARGE_MEM_SQLS | 系统中使用大内存最多的 20 条 sql 语句。字段定义与 v$large_mem_sqls 相同。 |
19 | V$SCP_CACHE | 显示缓存池信息 |
20 | V$DB_SYSPRIV_CACHE | 系统权限缓存信息 |
21 | V$DB_OBJPRIV_CACHE | 对象权限缓存信息 |
22 | V$SQL_STAT | 语句级资源监控内容。记录当前正在执行的 SQL 语句的资源开销。需要 ENABLE_MONITOR=1 才开始监控。可以通过 SP_SET_SQL_STAT_THRESHOLD()设置监控阀值,超过阀值才开始监控。 |
23 | V$SQL_STAT_HISTORY | 语句级资源监控内容。记录历史 SQL 语句执行的资源开销。需要 ENABLE_MONITOR=1 才开始监控。视图的格式和 V$SQL_STAT 一样。单机最大行数为 10000。 |
24 | V$HLDR_TABLE | 记录当前系统中所有 HLDR 使用 HLDR_BUF 的情况 |
2、段簇页
序号 | 视图名 | 用途 |
1 | V$SEGMENT_INFOS | 显示所有的段信息 |
2 | V$SEGMENTINFO | 索引叶子段信息视图。查询该视图时,一定要带 WHERE 条件,并且必须是等值条件。 |
3 | V$BTREE_INNER_PAGES/V$BTREE_LEAF_PAGES | 索引的叶子段/内节点段的页信息视图。查询该视图时,一定要带 WHERE 条件,并且必须是等值条件。 |
4 | V$BTREE_LIST_PAGES | LIST 索引的叶子段的页信息视图。查询该视图时,一定要带 WHERE 条件,并且必须是等值条件 |
5 | V$TABLE_LOB_PAGES | 表中的大字段的页信息视图。查询该视图时,一定要带 WHERE 条件,并且必须是等值条件 |
6 | V$RESOURCE_LIMIT | 显示表、用户的空间限制信息 |
7 | V$SEGMENT_PAGES | 段中数据页的信息视图。查询该视图时,一定要带 WHERE 条件指定 GROUP_ID 和 SEG_ID,并且必须是等值条件。 |
8 | V$PSEG_SYS | 显示当前回滚段信息 |
9 | V$PSEG_ITEMS | 显示回滚系统中当前回滚项信息 |
10 | V$PSEG_COMMIT_TRX | 显示回滚项中已提交但未 PURGE 的事务信息 |
11 | V$PSEG_PAGE_INFO | 显示当前回滚页信息 |
12 | V$PURGE | 显示当前 PURGE 回滚段信息 |
13 | V$PURGE_PSEG_OBJ | 显示 PURGE 系统中,待 PURGE 的所有 PSEG 对象信息 |
14 | V$PURGE_PSEG_TAB | 显示待 PURGE 表信息 |
3、数据库信息
序号 | 视图名 | 用途 |
1 | V$LICENSE | 显示 LICENSE 信息,用来查询当前系统的 LICENSE 信息 |
2 | V$VERSION | 显示版本信息,包括服务器版本号与 DB 版本号。如果为 DMDSC 环境,则还会增加显示DMDSC 版本号 |
3 | V$DATAFILE | 显示数据文件信息 |
4 | V$DATABASE | 显示数据库信息 |
5 | V$IID | 显示下一个创建的数据库对象的 ID。该视图提供用户可以查询下一个创建对象的 ID 的值,可以方便用户查询预知自己所要建立对象的信息 |
6 | V$INSTANCE | 显示实例信息 |
7 | V$RESERVED_WORDS | 保留字统计表,记录保留字的分类信息。RES_FIXED=N 的关键字,通过 ini 参数 EXCLUDE_RESERVED_WORDS 设置之后会失效,此视图不会再记录。 |
8 | V$ERR_INFO | 显示系统中的错误码信息 |
9 | V$HINT_INI_INFO | 显示支持的 HINT 参数信息 |
4、数据库对象相关
序号 | 视图名 | 用途 |
1 | V$TABLESPACE | 显示表空间信息,不包括回滚表空间信息 |
2 | V$HUGE_TABLESPACE | 显示 HUGE 表空间信息 |
3 | V$HUGE_TABLESPACE_PATH | 显示 HUGE 表空间路径信息 |
4 | V$SEQCACHE | 显示当前系统中缓存的序列的信息 |
5 | V$PKGPROCS | 显示包中的方法信息 |
6 | V$PKGPROCPARAMS | 显示包中方法的参数信息 |
7 | V$DB_CACHE | 数据字典缓存表,用于记录数据字典的实时信息 |
8 | V$DB_OBJECT_CACHE | 数据字典对象缓存表,用于记录数据字典中每个对象的信息 |
9 | V$OBJECT_USAGE | 记录索引监控信息 |
10 | V$IFUN | 显示数据库提供的所有函数 |
11 | V$IFUN_ARG | 显示数据库提供的所有函数的参数 |
12 | V$SYSSTAT | 显示系统统计信息 |
13 | V$JOBS_RUNNING | 显示系统中正在执行的作业信息 |
5、数据库配置参数
序号 | 视图名 | 用途 |
1 | V$PARAMETER | 显示 ini 参数和 dminit 建库参数的类型及参数值信息(当前会话值、系统值及 dm.ini文件中的值 |
2 | V$DM_INI | 所有 ini 参数和 dminit 建库参数信息。 |
3 | V$DM_ARCH_INI | 归档参数信息 |
4 | V$DM_MAL_INI | MAL 参数信息 |
5 | V$DM_REP_RPS_INST_NAME_INI | 数据复制服务器参数信息 |
6 | V$DM_REP_MASTER_INFO_INI | 数据复制主库参数信息 |
7 | V$DM_REP_SLAVE_INFO_INI | 数据复制从机参数信息 |
8 | V$DM_REP_SLAVE_TAB_MAP_INI | 数据复制从机表对应关系参数信息 |
9 | V$DM_REP_SLAVE_SRC_COL_INFO_INI | 数据复制从机列对应关系参数信息 |
10 | V$DM_LLOG_INFO_INI | 逻辑日志信息参数信息 |
11 | V$DM_LLOG_TAB_MAP_INI | 逻辑日志与表对应的参数信息 |
12 | V$DM_TIMER_INI | 定时器参数信息 |
13 | V$OBSOLETE_PARAMETER | 已作废的 INI 信息 |
14 | V$OPTION | 安装数据库时的参数设置 |
6、日志管理
序号 | 视图名 | 用途 |
1 | V$RLOG | 显示日志的总体信息。通过该视图可以了解系统当前日志事务号 LSN 的情况、归档日志情况、检查点的执行情况等。 |
2 | V$RLOGBUF | 显示日志 BUFFER 信息。通过该视图可以查询日志 BUFFER 的使用情况,如 BUFFER 状态、总大小、已使用大小,这样可以带来帮助,如 BUFFER 剩余空间过小产生的失败等 |
3 | V$RLOGFILE | 显示日志文件的具体信息。包括文件号、完整路径、文件的状态、文件大小等等 |
4 | V$ARCHIVED_LOG | 显示当前实例的所有归档日志文件信息。此动态视图与 Oracle 兼容,下表中未列出的列 DM 暂不支持,查询时均显示 NULL |
5 | V$LOGMNR_LOGS | 显示当前会话添加的需要分析的归档日志文件。此动态视图与 Oracle 兼容,下表中未列出的列 DM 暂不支持,查询时均显示 NULL |
6 | V$LOGMNR_PARAMETERS | 显示当前会话 START_LOGMNR 启动日志文件分析的参数。此动态视图与 Oracle 兼容,下表中未列出的列 DM 暂不支持,查询时均显示 NULL |
7 | V$LOGMNR_CONTENTS | 显示当前会话日志分析的内容。此动态视图与 Oracle 兼容,下表中未列出的列 DM 暂不支持,查询时均显示 NULL |
8 | V$ARCH_QUEUE | 显示当前归档任务队列信息 |
7、会话
序号 | 视图名 | 用途 |
1 | V$CONNECT | 显示活动连接的所有信息 |
2 | V$SESSIONS | 显示会话的具体信息,如执行的 sql 语句、主库名、当前会话状态、用户名等等 |
3 | V$SESSION_SYS | 显示系统中会话的一些状态统计信息 |
4 | V$OPEN_STMT | 连接语句句柄表,用于记录 SESSION 上语句句柄的信息 |
5 | V$SESSION_HISTORY | 显示会话历史的记录信息,如主库名、用户名等,与 V$SESSIONS 的区别在于会话历史记录只记录了会话一部分信息,对于一些动态改变的信息没有记录,如执行的 SQL 语句等 |
6 | V$CONTEXT | 显示当前会话所有上下文的名字空间、属性和值 |
7 | V$SESSION_STAT | 记录每个 session 上的相关统计信息 |
8 | V$NLS_PARAMETERS | 显示当前会话的日期时间格式和日期时间语言 |
8、SQL执行相关
序号 | 视图名 | 用途 |
1 | V$SQL_HISTORY | 当 INI 参数 ENABLE_MONITOR=1 时,显示执行 SQL 的历史记录信息;可以方便用户经常使用的记录进行保存 |
2 | V$SQL_NODE_HISTORY | 通过该视图既可以查询 SQL 执行节点信息,包括 SQL 节点的类型、进入次数和使用时间等等;又可以查询所有执行的 SQL 节点执行情况,如哪些使用最频繁、耗时多少等。当 INI 参数 ENABLE_MONITOR 和 MONITOR_SQL_EXEC 都开启时,才会记录 SQL 执 行节点信息。如果需要时间统计信息,还需要打开 MONITOR_TIME |
3 | V$SQL_NODE_NAME | 显示所有的 sql 节点描述信息,包括 sql 节点类型、名字和详细描述 |
4 | V$COSTPARA | 显示 SQL 计划的代价信息 |
5 | V$LONG_EXEC_SQLS | INI 参数 ENABLE_MONITOR=1、MONITOR_TIME=1 时,显示系统最近 1000 条执行时间超过预定值的 SQL 语句。默认预定值为 1000 毫秒。可通过 SP_SET_LONG_TIME 系统函数修改,通过 SF_GET_LONG_TIME 系统函数查看当前值 |
6 | V$SYSTEM_LONG_EXEC_SQLS | INI 参数 ENABLE_MONITOR=1、MONITOR_TIME=1 时,显示系统自启动以来执行时间最长的 20 条 SQL 语句,不包括执行时间低于预定值的语句 |
7 | V$VMS | 显示虚拟机信息 |
8 | V$STKFRM | 显示虚拟机栈桢信息。该参数必须在 INI 参数 ENABLE_MONITOR 和MONITOR_SQL_EXEC 都开启时才有信息 |
9 | V$STMTS | 显示当前活动会话的最近的语句的相关信息 |
10 | V$SQL_PLAN_NODE | 当 INI 参数 ENABLE_MONITOR 和 MONITOR_SQL_EXEC 都开启时,显示执行计划的节点信息 |
11 | V$SQL_SUBPLAN | 显示子计划信息 |
12 | V$SQL_PLAN_DCTREF | 显示所有执行计划相关的详细字典对象信息 |
13 | V$MTAB_USED_HISTORY | 显示系统自启动以来使用 MTAB 空间最多的 50 个操作符信息 |
14 | V$SORT_HISTORY | 当 INI 参数 ENABLE_MONITOR=1 都打开时,显示系统自启动以来使用排序页数最多的50 个操作符信息 |
15 | V$HASH_MERGE_USED_HISTORY | HASH MERGE 连接操作符使用的缓存信息 |
16 | V$PLSQL_DDL_HISTORY | 记录 DMSQL 程序中执行的 DDL 语句,主要监控 truncate table 和 Execute immediate DDL 语句的情况 |
17 | V$PRE_RETURN_HISTORY | 记录大量数据返回结果集的历史信息(查询大量数据产生) |
18 | V$DMSQL_EXEC_TIME | 记录动态监控的 sql 语句执行时间。当 ENABLE_MONITOR_DMSQL=1 时才会记录监控的 sql 语句 |
19 | V$VIRTUAL_MACHINE | 显示活动的虚拟机信息 |
9、事务和检查点
序号 | 视图名 | 用途 |
1 | V$TRX | 显示所有活动事务的信息。通过该视图可以查看所有系统中所有的事务以及相关信息,如锁信息等 |
2 | V$TRXWAIT | 显示事务等待信息 |
3 | V$TRX_VIEW | 显示当前事务可见的所有活动事务视图信息。根据达梦多版本规则,通过该视图可以查询系统中自己所见的事务信息;可以通过与 v$trx 表的连接查询它所见事务的具体信息。 |
4 | V$RECV_ROLLBACK_TRX | 显示数据库启动时回滚的所有事务信息 |
5 | V$LOCK | 显示活动的事务锁信息 |
6 | V$DEADLOCK_HISTORY | 记录死锁的历史信息 |
7 | V$FLASHBACK_TRX_INFO | 显示闪回信息 |
8 | V$CKPT_HISTORY | 显示检查点历史信息 |
9 | V$CKPT | 显示系统检查点信息 |
10、事件
序号 | 视图名 | 用途 |
1 | V$WAIT_HISTORY | 通过该视图可以查询等待事件的具体信息,如等待的线程 id,会话 id 等。可以查看具体等待事件的信息,如果某个事务等待时间过长,则可以查询到具体事务信息以及所在的线程和所牵涉的对象,分析原因进行优化等操作。 |
2 | V$EVENT_NAME | 显示当前系统所支持的等待事件的类型汇总信息 |
3 | V$SYSTEM_EVENT | 显示自系统启动以来所有等待事件的详细信息 |
4 | V$SESSION_EVENT | 显示当前会话等待事件的所有信息 |
5 | V$SESSION_WAIT_HISTORY | 显示会话等待事件的历史信息 |
6 | V$DANGER_EVENT | 数据库重要事件和行为信息视图 |
7 | V$TASK_QUEUE | 任务队列信息 |
8 | V$TRACE_QUEUE | 事件跟踪任务队列信息 |
11、进程和线程
序号 | 视图名 | 用途 |
1 | V$PROCESS | 显示当前进程信息 |
2 | V$THREADS | 显示系统中所有活动线程的信息 |
3 | V$LATCHES | 显示正在等待的线程信息 |
4 | V$WTHRD_HISTORY | 通过本视图可以观察系统从启动以来,所有活动过线程的相关历史信息。其中 CHG_TYPE有 REUSE_OK(本 SESSION 重用成功)、REUSE_FAIL (重用失败)、TO_IDLE(不重用,直接变 IDLE)等几种类型 |
12、系统信息
序号 | 视图名 | 用途 |
1 | V$SYSTEMINFO | 系统信息视图 |
2 | V$CMD_HISTORY | 通过本视图可以观察系统的一些命令的历史信息。其中 cmd 指的是 SESS_ALLOC, SESS_FREE,CKPT,TIMER_TRIG,SERERR_TRIG,LOG_REP,MAL_LETTER,CMD_LOGIN 等。 |
3 | V$RUNTIME_ERR_HISTORY | 监控运行时错误历史。异常分为三种:一种是系统异常,用户没有捕获,由vm_raise_runtime_error 产生;第二种是用户异常,用户捕获错误,并抛出自定义异常,由 nthrow_exec 产生;第三种是语法异常,语法未通过,由 nsvr_build_npar_cop_out 产生 |




