注册
DM系统表和系统视图
专栏/技术分享/ 文章详情 /

DM系统表和系统视图

Arno 2025/09/19 390 3 0
摘要

一、系统表

1.简介
系统表是 DM 数据库的核心组成部分,由数据库系统自身创建和维护。它们存储了关于数据库本身的元数据,即“数据库的数据”。
1.1内容:
包括所有数据库对象(如表、视图、索引、存储过程、用户、权限等)的定义信息、结构信息、状态信息。
1.2所有者:
大部分系统表属于SYS用户或SYSDBA。
1.3位置:
存储在 SYSTEM 表空间中。
1.4操作:
严禁使用INSERT,UPDATE,DELETE等DML 语句直接修改系统表,这会导致数据库崩溃或数据不一致。只能通过系统提供的合法命令和工具(如CREATE USER,GRANT等)来间接修改系统表中的数据。
2.系统表介绍
SYSOBJECTS:最重要的系统表之一,记录了数据库中所有对象(表、视图、索引、过程等)的基本信息。
SYSUSERS:存储所有数据库用户的信息。
SYSTABLES:存储所有表(包括用户表和系统表)的信息。
SYSCOLUMNS:存储所有表的所有列的详细信息。
SYSINDEXES:存储所有索引的信息。
SYSCONS:存储所有约束(主键、外键等)的信息。
SYSPRIVS:存储系统权限信息。
V$PARAMETER:动态性能视图,显示当前系统的初始化参数及其值。

二、系统视图

系统视图是基于一个或多个系统表的预定义查询。它们提供了查看系统表数据的另一种方式,通常更加易读和安全。
1.目的:
a.简化查询:隐藏复杂的表连接逻辑。
b.安全性:可以只暴露部分列或行给用户,保护敏感的元数据信息。
c.兼容性:提供与Oracle等主流数据库相似的字典视图名称,方便用户迁移和使用。
d.稳定性:即使底层系统表的结构发生变化,只要视图的接口不变,用户的查询就可以保持不变。
2.常用系统视图分类:
2.1静态数据字典视图
USER_:显示当前用户所拥有的对象。
ALL_
:显示当前用户有权限访问的所有对象。
DBA_*:显示数据库中的所有对象。
2.2动态性能视图
这些视图不是存储在磁盘上的静态数据,而是实时从内存和控制文件中读取的,反映了数据库当前的运行状态和性能指标。
例如:
VSESSIONS:当前所有的会话信息。 VLOCK:当前的锁信息。
VPARAMETER:当前的系统参数。 VSQL:共享池中的 SQL 语句信息,用于性能优化。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服