数据字典包括数据字典基本表和数据字典视图。
数据字典基本表由$ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建,数据字典
基本表大多以$结尾,属于sys用户,存放在system表空间。x$开头的是内存中存在表,关闭就不存在了
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 VIEWPUBLIC 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_TABLESPUBLIC TABS SYS USER_TABLES
SQL>之所以用户能够访问USER_TABLES(该表属于SYS用户的),因为他对user_tables 先创建了user_tables视图再为该视图创建了公共的同义词,所以就能访问了该视图的创建是通过数据字典和,内存表动态生成的。
息,主要是数据库的活动状态信息,它把存储在内存里的信
息、和存储在控制文件里的信息,以视图的形式展现出来。
常见的动态性能视图:v$parameter:初始化参数文件
中所有项的值,v$process:当前进程的信息,v$session:有
关会话的信息,v$sysstat:基于当前操作会话进行的系统统
计,v$log:从控制文件中提取有关重做日志组的信息,
v$logfile有关实例重置日志组文件名及其位置的信息,
v$lock:当前进程已获得的和正在请求的锁定信息,
v$transaction:数据库的事务信息。
v$fixed_view_definition中记录了所有的动态性能视图的定义信息。