oracle中以dba_、user_、v$_、all_开头视图之间的区别。

oracle中以dba_、user_、v$_、all_开头视图之间的区别。,第1张

DBA是只有DBA权限的用户才能查询,内容包含了系统全部;

ALL是普通用户可以查询,内容包含了该用户所能访问的部分;

User是普通用户可以查询,内容包含了该用户是所有者的部分;

V$是数据字典动态视图,显示系统当前的状态。它的值在随时都可能发生变化。

这个你得先弄明白什么叫视图

说白了,视图就是一个或多个表根据一定的sql语句生成的一个动态的东西

好比你有两个表

表1

id name

1 aa

表2

id name

2 bbb

视图是

create view view1 as select from 表1 union all

select from 表2;

视图的内容是

id name

1 aaa

2 bbb

当表1或表2里增加数据的时候,这个视图随着表是动态变化的,所以,视图不可以做增,删,改的 *** 作

视图其实就是一个SQL的检索语句,除了第一行以外,与普通SQL格式完全一样,例:

CREATE OR REPLACE VIEW 视图名 AS

SELECT  from table where column1 = 'a';

动态性能视图主要是Oracle数据的库自动收集并记录当前例程的活动信息 当数据库管理员启动某个例程时 数据库会自动建立动态性能视图;当停止某个例程时 数据库又会自动删除这些动态性能视图 这表面看起来跟数据字典有异曲同工之妙 但是 两者信息的来源还是有很大差异的 数据字典的信息是从数据文件中取得;而动态性能视图的信息则是从SGA内存以及控制文件中取得 所以 两者所反映的信息还是有很大差异的 数据库管理员利用这些动态性能视图 可以了解数据库运行的一些基本信息 为我们进行数据库维护以及数据库性能优化提供一些数据上的支持 一般情况下 我们可以通过动态性能数据掌握两类重要的数据库运行信息 一是了解数据库运行相关的性能数据 如内存的使用量 磁盘排序发生的机率等等 二是取得与磁盘和内存结构相关的其他信息 这些信息将是我们进行数据库维护与数据库性能调整的主要参考依据

为了便于数据库管理员查询这些动态视图 Oracle数据库中的动态性能视图跟其他数据库对象有着不同的命名规则 通常情况下 动态性能视图都是以V_$前缀开头的 并且Oracle数据库维每个动态性能视图提供了相应的同义词 下面笔者就介绍一些动态性能视图查询中的一些技巧以 帮助广大数据库管理员提高对Oracle数据库动态性能视图的认识

一 知道可用的动态性能视图

因为动态性能视图是随着例程的启动而启动 随着例程的消亡而消亡 其是动态变化的 所以 对于一些动态性能视图不怎么了解的数据库管理员来说 第一步就是需要了解 现在数据库中到底有哪些动态性能视图可以用 Oracle数据库中有一张V_$fixed_table动态性能视图 这张视图中纪录著当前所有可用的动态性能视图 当数据库管理员对动态性能不怎么了解的话 可以先通过这张视图了解动态性能视图的概况 并了解哪些动态性能视图当前是可用的 数据库管理员可以通过下面的命令查询当前可用的所有动态性能视图

在通常情况下 数据库不同的状态其动态性能视图还是有比较大的差异 数据库管理员掌握这些差异 对于他们借助这些视图来管理数据库可能会有更大的帮助

一是数据库处于 NOMOUNT 状态 数据库启动例程时 Oracle数据库会打开参数文件 分配SGA内存并启动后台进程 此时 其实数据库还没有挂栽 此时 动态性呢视图收集的信息来源只有是SGA 而不会从控制文件中收集相关的信息 所以 动态性能视图的数量要少得多

二是当数据库处于MOUNT状态时 数据库会根据初始化参数打开所有的控制文件 所以 当例程处于Mount状态时 动态性能视图其收集到的信息就要第一个状态多的多 因为此时 动态性能视图还会去收集控制文件的相关信息 不过 此时动态性能视图所收集到的资料还不是最全的

三是当用户打开数据库时 Oracle系统会根据控制文件所记载的信息去打开所有的数据库文件以及重做日志 此时 数据库管理员除了可以从SGA和控制文件中获取信息的动态性能视图外 还可能访问与Oracle数据库性能相关的动态性能视图 如会话等待时间等视图 另外需要注意一点 就是只有在这个状态时 我们才能够访问数据库的数据字典视图

lishixinzhi/Article/program/Oracle/201311/17253

缺点: 数据及时性不好,如果服务器配置较⾼此缺点可以忽略sql server必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,sql server也要把它变成一个复杂的结合体,需要花费一定的时间。

 2)修改限制

当用户试图修改试图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的试图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。

首先说明一点:小弟很佩服大哥的想法,系统试图也敢改。不过要小心,挂掉起不来的可能性接近100%。

个人建议,新建视图,新建立的视图怎么建立你说了算。

至于obj$和com$,这两个是真正的基础动态视图,他们的主要功能是收集基础的信息,其实user视图,all视图,包括v$视图他们的来源有很多都是这种基础视图,这种基础视图有些是通过文件直接收集信息,有些是通过redo日志收集信息,我记得除了这种$视图以外还有一种后面带有符号的视图,也是基础视图不过长时间不用,忘记了,这些基础视图是我们查询的那些基础视图的根本,同时,某些基础视图也是oracle启动和关闭的参考关键,如果改了,那么就只能呵呵了。

以上就是关于oracle中以dba_、user_、v$_、all_开头视图之间的区别。全部的内容,包括:oracle中以dba_、user_、v$_、all_开头视图之间的区别。、数据库ORACLE中如何创建可以插入数据的视图、oracle数据库视图怎么建立 详细一点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9520848.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存