提示:可根据名称在《DM8系统管理员手册》中查看视图的详细字段信息,或直接在官网查看:DM8系统管理员手册-附录
一、核心数据字典表
SYSOBJECTS:记录系统中所有对象的信息。
SYSTEXTS:存放字典对象的文本信息。使用时,系统内部临时解析的字典对象才会放入此处。
SYSCOLUMNS:记录系统中所有列定义的信息。
SYSCONS:记录系统中所有约束的信息。
SYSINDEXES:记录系统中所有索引定义信息。
SYSOBJINFOS:记录对象的依赖信息。
SYSUSERS:记录系统中用户信息。
二、Oracle兼容视图 (DBA_/ALL_/USER_)
DBA_SOURCE:查看所有存储对象(函数、存储过程、包等)的源代码。
DBA_OBJECTS:查看数据库中所有对象的详细信息。
DBA_TABLES:查看数据库中所有表(包括系统表)的详细信息。
DBA_TAB_COLUMNS:查看数据库中所有表的列信息。
DBA_CONSTRAINTS:查看数据库中所有表的约束信息。
DBA_INDEXES:查看数据库中所有索引的信息。
DBA_USERS:查看数据库中所有用户的信息。
DBA_TAB_PRIVS:查看授予用户的所有对象权限。
三、动态性能视图 (V$)
V$SESSIONS:查看当前数据库会话信息。
V$LOCK:查看当前锁信息,用于死锁分析与诊断。
V$DATABASE:查看数据库的基本信息和状态。
V$TABLESPACE:查看所有表空间的基本信息。
V$DATAFILE:查看数据文件信息。
V$DM_INI:查看数据库的系统配置参数。
V$RLOGFILE:查看联机重做日志文件信息。
四、用户/模式视图
ALL_USERS:查看所有用户(基本信息)。
五、鲜少使用
5.1 查询依赖关系
SELECT * FROM DBA_DEPENDENCIES WHERE REFERENCED_NAME = 'TABNAME';
5.2 查询库中的确定性函数
SELECT * FROM DBA_SOURCE
WHERE TYPE = 'PROC'
AND REGEXP_LIKE(TEXT, 'DETERMINISTIC', 'i')
ORDER BY OWNER;
5.3 查询库中的HUGE表
(1)查询HUGE表空间
SELECT * FROM SYS."V$HUGE_TABLESPACE";
(2)达梦在创建每一个 HUGE 表时,都会自动创建一个同名的辅助表来管理它的数据。辅助表的命名规则是 原表名$AUX,查询辅助表
SELECT * FROM SYSOBJECTS WHERE NAME LIKE '%$AUX';
(3)通过查找$AUX辅助表来定位所有HUGE主表
SELECT
US.NAME AS 模式名,
-- 核心逻辑:去掉末尾的$AUX,得到原始HUGE主表名
SUBSTR(S.NAME, 1, LENGTH(S.NAME) - 4) AS HUGE主表名,
S.NAME AS 辅助表名
FROM
SYSOBJECTS S
JOIN
SYSOBJECTS US ON S.SCHID = US.ID
WHERE
S.SUBTYPE$ = 'UTAB' -- 普通用户表
AND S.NAME LIKE '%$AUX' -- 过滤出AUX辅助表
AND US.TYPE$ = 'SCH' -- 关联模式信息
ORDER BY
模式名, HUGE主表名;
如果一个 HUGE 表是分区表,其辅助表的名称会是“子表名$AUX”。对于这种情况,上述 SQL 可能无法直接还原出原始的主表名。
(4)查询分区HUGE表
SELECT DISTINCT
PT.TABLE_OWNER,
PT.TABLE_NAME,
T.TABLESPACE_NAME
FROM DBA_TAB_PARTITIONS PT
LEFT JOIN DBA_TABLES T
ON PT.TABLE_OWNER = T.OWNER
AND PT.TABLE_NAME = T.TABLE_NAME
WHERE T.TABLESPACE_NAME IN (SELECT NAME FROM V$HUGE_TABLESPACE)
ORDER BY PT.TABLE_OWNER, PT.TABLE_NAME;