oracle数据字典技术浅析
数据字典的地方是Oracle存储信息的数据库,其目的是描述数据。例如,一个表的创建者信息、时间信息的创建、表空间信息,用户访问信息,等等。当用户有困难的一个数据库操作的数据,数据字典可以看到详细的信息。
在Oracle数据字典有静态和动态之分。静态数据字典不改变用户访问数据字典为主,但动态性能依赖于数据字典数据库操作,反映出一些内部数据库,所以访问这些数据字典不是一成不变的,以下两种数据字典分别讨论了。
1。静态数据字典
这种数据字典主要由表和视图组成。应该指出的是,在数据字典表中不能直接访问,但在数据字典视图可以访问。在静态数据字典视图分为三类,分别由三个前缀:user_ *,all_ *,和dba_ *。
user_ *
此视图存储当前用户所拥有的对象的信息(即,用户模式中的所有对象)。
all_ *
这是一个尝试存储当前用户可访问的对象的信息。(与user_ *,相比all_ *不需要有对象,只需要访问对象)
dba_ *
此视图存储数据库中所有对象的信息(前提是当前用户有权访问这些数据库,一般必须具有管理员权限)。
从上面的描述中,我们可以看到三者之间存储的数据会重叠。事实上,他们都有另外不同的访问范围的一致性(因为权限不同,所以访问对象的范围是不同的)。具体来说,由于数据字典视图是SYS(系统用户),在节约的情况下,只有系统和数据库系统权限的用户可以看到所有的看法。没有DBA权限的用户可以看到user_ *和all_ *。他们看不到dba_查看是否授予权限的相关选择。
由于三是相似的,一些常用的静态视图为例,介绍了user_。
user_users观
它主要描述当前用户的信息,包括当前用户名、帐户ID、帐户状态、表空间名称、创建时间等。
SELECT * FROM user_users
user_tables观
它主要描述了所有当前用户表的信息,包括表名、表空间的名字,群集名称,等等。这种观点给出了一个清楚的了解表的当前用户可以操作。执行命令:SELECT * FROM user_tables
user_objects观
它主要描述用户所拥有的所有对象的信息。对象包括表、视图、存储过程、触发器、数据包,索引,序列,等这个观点比user_tables观更全面。例如,你需要获得关于对象命名文件及其状态的类型的信息,你可以执行以下命令:
我们应该注意上层的使用。数据字典中的所有对象都是大写的,而PL/sql不是区分大小写的,所以在实际操作中必须注意大小写匹配。
user_tab_privs观
这种观点主要是存储的所有表的当前用户的权限信息。例如,为了了解当前用户的权限信息表,可以执行以下命令:
在了解了当前用户对表的权限之后,很清楚可以执行哪些操作,哪些操作不能执行。
前面的观点开始user_。其实,all_开始时是一样的,但是所列出的信息,用户可以访问当前的对象,而不是对象拥有管理员权限的用户,在dba_开始需要的是完全一样的其他用途,它不再是这里描述。
{分页}
2。动态数据字典
Oracle包含由系统管理员(如sys)维护的一些潜在的表和视图。它们被称为动态数据字典(或动态性能视图),因为它们在数据库运行时不断更新。这些视图提供有关内存和磁盘运行的信息,因此我们只能读取只读访问它而不修改它们。
这些动态性能视图在Oracle的所有视图开始以V $,如V $获得以下几个主要的动态性能视图。
V $访问
此视图显示锁定在数据库中的数据库对象和访问对象的会话对象(会话对象)。
运行以下命令:
结果如下:(由于记录较多,这只是记录的一部分)。
V $ SESSION
此视图列出当前会话的详细信息。因为有更多的视野,没有详细的字段。如果你想知道更多的细节,你可以直接输入SQL * Plus命令行下:DESC V $ SESSION。
V active_instance美元
此视图主要描述当前数据库下活动实例的信息。您仍然可以使用SELECT语句查看信息。
V $语境
此视图列出当前会话的属性信息,如名称空间、属性值等。
三.总结
以上是Oracle数据字典的基本内容,有很多有用的意见,因为原因不能解释在这里,我希望你能在平时多注意。总之,使用数据字典技术可以使数据库开发人员更好地了解数据库的整体画面,这是对数据库的优化和管理帮助。
上一页