我正在关注oracle的教程,我刚刚创建了我的oracle数据库。
但是我看到所有这些冗余表,顺便说一句,我的数据库不是容器数据库。
这些东西到底是什么?为什么会这样?
正如它在评论中所说,如果您使用系统帐户登录,这通常会看到。我创建了一个新帐户并使用该帐户登录,一切正常。
答案 0 :(得分:0)
Oracle数据库的一个重要部分是它的数据字典 是一组只读的表,提供管理元数据 关于数据库。
数据字典包含以下信息:
数据库中每个架构对象的定义,包括 列和完整性约束信息的默认值
为架构分配和当前使用的空间量 对象
授予Oracle数据库用户,权限和角色的名称 用户和与用户相关的审核信息(请参阅"用户帐户")
数据字典是每个人的数据管理的核心部分 Oracle数据库。例如,数据库执行以下操作 动作:
访问数据字典以查找有关用户,架构的信息 对象和存储结构
每次发出DDL语句时修改数据字典 (参见"数据定义语言(DDL)声明")
因为Oracle数据库只是在表中存储数据字典数据 与其他数据一样,用户可以使用SQL查询数据。例如,用户 可以运行SELECT语句来确定它们的权限,哪些表 存在于他们的模式中,无论是哪些列都在这些表中 索引构建在这些列上,依此类推。
例如:
SQL> select count(1) from user_tables;
COUNT(1)
----------
167
SQL> create table oneMoreTable(a number);
Table created.
SQL> select count(1) from user_tables;
COUNT(1)
----------
168
SQL> select count(distinct table_name), count(1) from user_tab_columns;
COUNT(DISTINCTTABLE_NAME) COUNT(1)
------------------------- ----------
172 465
SQL> drop table oneMoreTable;
Table dropped.
SQL> select count(distinct table_name), count(1) from user_tab_columns;
COUNT(DISTINCTTABLE_NAME) COUNT(1)
------------------------- ----------
171 464
答案 1 :(得分:0)
通常,这些是"属于"到数据库 - 要么是因为它们是由一个预定义用户(SYS,SYSTEM,SYSDBA ......)所拥有,要么是因为Oracle使用它们进行内务管理,例如对
Apart包含前缀V$
的表是存储易失信息的表。这些表也称为dynamic performance
表。
易失性信息由oracle实例在使用时生成(使用中表示实例已启动并运行)。易失信息包括统计,用户会话信息,内存分配。