`
1enny
  • 浏览: 70301 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

数据字典和动态性能视图

 
阅读更多
oracle217


数据字典和动态性能视图

数据字典:
数据字典是整个oracle的核心,记录了数据库的最基本的信息。

数据字典包括数据字典基本表和数据字典视图。

数据字典基本表由$ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建,数据字典

基本表大多以$结尾,属于sys用户,存放在system表空间。x$开头的是内存中存在表,关闭就不存在了

用户不能手动去修改数据字典基本表。

数据字典视图:
为了简化对数据字典基本表的使用,oracle提供了数据字典视图,oracle还为数据字典视图创建了公有同义词,
方便用户使用,数据字典视图和同义词的创建通过catalog.sql
Oracle11g的数据字典视图的三种类型
数据字典视图分为三种类型:USER_ALL_DBA_

USER_类型的视图表示当前登录用户拥有的信息。

ALL_类型的视图表示当前登录用户有权限看到的信息。

DBA_类型的视图表示数据库管理员能够看到的信息,也就是整个数据库范围内的信息。

例如:user_tables、all_tables、dba_tables

user_tables对应了2个数据库对象,一个是数据字典视

图、一个是同义词,而且是先基于数据字典基本表创建了数


据字典视图,然后为该视图创建了一个同名的同义词。

SQL> select ao.owner,ao.object_name,ao.object_type from all_objects ao where ao.object_name='USER_TABLES';
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------ ------------------------------ -------------------
SYS USER_TABLES VIEW
PUBLIC USER_TABLES SYNONYM

SQL> select dv.owner,dv.view_name,dv.view_type ,dv.text from dba_views dv where dv.view_name='USER_TABLES';
OWNER VIEW_NAME VIEW_TYPE TEXT
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS USER_TABLES select o.name,
decode(bitand(t.property,2151678048), 0, ts.name,

SQL> set long 10000;
SQL> select dv.owner,dv.view_name,dv.view_type ,dv.text from dba_views dv where dv.view_name='USER_TABLES';
OWNER VIEW_NAME VIEW_TYPETEXT
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS USER_TABLES select o.name,
decode(bitand(t.property,2151678048), 0, ts.name,
decode(t.ts#, 0, null, ts.name)),
............................省略.........................................................................................................
decode(bitand(t.property,16492674416640),2199023255552,'FORCE',
4398046511104,'MANUAL','DEFAULT')
from sys.ts$ ts, sys.seg$ s, sys.obj$ co, sys.tab$ t, sys.obj$ o,
sys.deferred_stg$ ds, sys.obj$ cx, sys.user$ cu, x$ksppcv ksppcv,
x$ksppi ksppi
// 该视图的创建是通过数据字典和,内存表动态生成的。
where o.owner# = userenv('SCHEMAID')
and o.obj# = t.obj#
and bitand(t.property, 1) = 0
...........................................省略..........................................................................

SQL> select * from dba_synonyms ds where ds.table_name='USER_TABLES';
OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
------------------------------ ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
PUBLIC USER_TABLES SYS USER_TABLES
PUBLIC TABS SYS USER_TABLES

SQL>
之所以用户能够访问USER_TABLES(该表属于SYS用户的),因为他对user_tables 先创建了user_tables视图
再为该视图创建了公共的同义词,所以就能访问了
该视图的创建是通过数据字典和,内存表动态生成的。


Oracle11g的动态性能视图
动态性能视图:存储数据库中每时每刻都在变化的信

息,主要是数据库的活动状态信息,它把存储在内存里的信

息、和存储在控制文件里的信息,以视图的形式展现出来。

常见的动态性能视图:v$parameter:初始化参数文件

中所有项的值,v$process:当前进程的信息,v$session:有

关会话的信息,v$sysstat:基于当前操作会话进行的系统统

计,v$log:从控制文件中提取有关重做日志组的信息,

v$logfile有关实例重置日志组文件名及其位置的信息,

v$lock:当前进程已获得的和正在请求的锁定信息,

v$transaction:数据库的事务信息。

v$fixed_view_definition中记录了所有的动态性能视图的定义信息。






















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics