Oracle中的数据字典技术及常用数据字典总结

  • 时间:
  • 浏览:0
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

  select * from user_tab_privs where table_name=upper('table1')

了解了当前用户对该表的权限过后就都不能清楚的知道,哪几种操作都不能执行,哪几种操作不到执行。

前面的视图均为user_开头的,随便说说all_开头的也完都是一样的,却说列出来的信息是当前用户都不能访问的对象而都是当前用户拥有的对象。对于dba_开头的时要管理员权限,有些用法也全部一样,这里就不再赘述了。

---数据库实例的基本信息 

desc v$instance

select * from v$instance;

本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/archive/2010/06/29/1767591.html,如需转载请自行联系原作者。

--DBA 用户的所有的同义词的基本信息 

desc dba_synonyms

select owner,synonym_name,table_owner, 

       table_name,db_link 

from dba_synonyms;

--DBA 用户的所有的索引的基本信息 

desc dba_indexes

select owner,index_name,index_type,table_owner,table_name, 

       table_type,uniqueness,compression,logging,status 

from dba_indexes;

desc v$sgastat

select pool,name,bytes from v$sgastat;

--构成数据字典的所有的表信息 

desc dict

select table_name,comments from dict;

--控制文件的基本信息 

desc v$controlfile

select name,status,is_recovery_dest_file, 

       block_size,file_size_blks 

from v$controlfile;

http://www.cnblogs.com/QinBaoBei/archive/2010/04/11/17095400.html

--DBA 用户的所有的序列的信息 

desc dba_sequences

select sequence_owner,sequence_name,min_value,max_value, 

       cycle_flag 

from dba_sequences;

  下面列出的哪几种数据字典,均在 Oracle 11g R1 上,通过 Oracle Sql Developer 进行过测试的,全部通过。其中统统的数据字典都时要以 system 肯能是 sysdba 用户登录才不能使用的。

user_* 

SID



v$session

该视图列出当都是话的全部信息。肯能该视图字段较多,这里就不列全部字段,为了解全部信息,都不能直接在sql*plus命令行下键入:desc v$session即可。

v$active_instance

该视图主要描述当前数据库下的活动的实例的信息。依然都不能使用select得话来观察该信息。

v$context

--DBA 用户的所有的对象的基本信息 

desc dba_objects

select owner,object_name,subobject_name, 

       object_id,data_object_id,object_type, 

       created,status,namespace 

from dba_objects;

--后台任务管理器信息 

desc v$bgprocess

select paddr,pserial#,name,description,error from v$bgprocess;



dba_*

该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问哪几种数据库的权限,一般来说时要具有管理员权限)

从上面的描述都不能看出,三者之间存储的数据肯定会有重叠,随便说说它们除了访问范围的不同以外(肯能权限不一样,统统访问对象的范围不一样),有些均具有一致性。具体来说,肯能数据字典视图是由SYS(系统用户)所拥有的,统统在却省状态下,不到SYS和拥有DBA系统权限的用户都不能看一遍所有的视图。这麼DBA权限的用户不到看一遍user_*和all_*视。肯能这麼被授予相关的SELECT权限得话,亲们是不到看一遍 dba_*视图的。

肯能三者具有这类性,下面以user_为例介绍几块常用的静态视图:

user_users视图

主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。这类执行下列命令即可返回哪几种信息。

select * from user_users

user_tables视图

上面的呢却说 Oracle 中较常使用的数据字典了,时要提一下的是,上面有统统都是以 “dba_”开头的数据字典,比如有 dba_tables ,随便说说呢,这个 是列出了数据库中所有的数据,比如使用 dba_tables 就会列出数据库中所有的数据表(n 多),却说您都不能使用 user_tables 肯能 all_tables 来代替 dba_tables,当然有有些是这麼与之对应的,这麼 呢,就只会列出当前登录用户允许查看的数据表了,对于以“dba_”基本上都是有与之相对应的“user_”和“all_”,其中“user_”对应的是记录当前登陆用户的对象,而“all_”则是记录当前登陆用户的对象信息以及被授权访问的对象信息,而“dba_”是含有数据库实例的所有对象信息!!!

desc v$sql

select sql_text,sql_id,cpu_time from v$sql;

 一、Oracle数据字典

  select object_type,status

from user_objects

where object_name=upper(‘package1’);

注意:upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里都是大小写敏感的,统统在实际操作中一定要注意大小写匹配。

--当前用户都不能访问的所有的基表 

desc cat

select table_name from cat;



all_*

该试图存储了当前用户不能访问的对象的信息。(与user_*相比,all_* 从不时要拥有该对象,只时要具有访问该对象的权限即可)

二、Oracle 中常用数据字典

--临时文件的基本信息 

desc dba_temp_files

select file_name,file_id,tablespace_name,status, 

       bytes/1024/1024 大小MB 

from dba_temp_files;

--归档状态的有些基本信息 

desc v$archived_log

select name,dest_id,blocks,block_size, 

       archived,status,backup_count 

from v$archived_log;

  2. 动态数据字典

Oracle含有了有些潜在的由系统管理员如SYS维护的表和视图,肯能当数据库运行的过后它们会不断进行更新,统统称它们为动态数据字典(肯能是动态性能视图)。哪几种视图提供了关于内存和磁盘的运行状态,统统亲们不到对其进行只读访问而不到修改它们。

Oracle中哪几种动态性能视图都是以v$开头的视图,比如v$access。下面就几块主要的动态性能视图进行介绍。

v$access

该视图显示数据库中锁定的数据库对象以及访问哪几种对象的会话对象(session对象)。

运行如下命令:

select * from v$access


结果如下:(因记录较多,故这里却说节选了部分记录)

--访问参数文件 

desc v$parameter

select num,name,type,value,display_value, 

       isdefault,isses_modifiable, 

       issys_modifiable,isinstance_modifiable       

from v$parameter; 

select * from v$parameter; 

select name,value,description from v$parameter;

--日志文件的基本信息 

desc v$logfile

select group#,status,type,member,is_recovery_dest_file 

from v$logfile;

user_tab_privs视图

user_objects视图

--DBA 用户的所有的存储过程的基本信息 

desc dba_source

select owner,name,type,line,text from dba_source;

--数据文件的基本信息 

desc v$datafile

select * from v$datafile; 

desc dba_data_files

select file_name,file_id,tablespace_name,bytes,blocks, 

       status,online_status 

from dba_data_files;

--DBA 用户的所有的触发器的基本信息 

desc dba_triggers

select owner,trigger_name,trigger_type, 

       table_owner,table_name,column_name 

from dba_triggers;

-- 查询关于表空间的有些基本的数据字典 

desc dba_tablespaces

select tablespace_name,block_size,status, 

       logging,extent_management 

from dba_tablespaces;       

desc dba_free_space

select tablespace_name,file_id,block_id, 

       bytes/1024/1024 大小MB,blocks,relative_fno 

from dba_free_space;

http://9host.cn/oracle/400742218394112481.html

  数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如另兩个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就都不能访问数据字典来查看全部的信息。

Oracle中的数据字典有静态和动态之分。静态数据字典主却说在用户访问数据字典时我很多 居于改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的有些内在信息,统统在访问这类数据字典时往往都是一成不变的。以下分别就这两类数据字典来论述。

1. 静态数据字典 这类数据字典主却说由表和视图组成,应该注意的是,数据字典中的表是不到直接被访问的,却说都不能访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由另兩个前缀够成:user_*、 all_*、 dba_*。

--DBA 用户的所有的约束的信息 

desc dba_constraints

select owner,constraint_name,constraint_type, 

       table_name,status 

from dba_constraints;

--DBA 用户的所有的视图的基本信息 

desc dba_views

select owner,view_name,read_only from dba_views;

--数据库的基本信息 

desc v$database

select * from v$database; 

select dbid,name,created,resetlogs_time,log_mode, 

       open_mode,checkpoint_change#,archive_change#, 

       controlfile_created,controlfile_type, 

       controlfile_sequence#,controlfile_change#, 

       controlfile_time,protection_mode,database_role 

from v$database;

原文链接:

desc v$db_object_cache

select owner,name,db_link,type,namespace,locks from v$db_object_cache;

--DBA 用户的所有的段的基本信息 

desc dba_segments

select owner,segment_name,segment_type, 

       tablespace_name,blocks,extents 

from dba_segments;

--关于内存社会形态的有些信息 

desc v$sga

select name,value/1024/1024 大小MB from v$sga;

--DBA 用户的所有的表的基本信息 

desc dba_tables

desc dba_tab_columns

select owner,table_name,column_name,data_type,data_length, 

       global_stats,data_upgraded,histogram 

from dba_tab_columns;

--日志文件参数信息 

show parameter log_archive_dest;

--当前用户都不能访问的所有的基表,视图,同义词 

desc system.tab

select tname,tabtype,clusterid from system.tab;

3.小结 以上是Oracle的数据字典方面的基本内容,还有统统有用视图肯能篇幅由于 这里不到一一讲解,希望亲们在平时使用中多留心。总之,运用好数据字典技术,都不能让数据库开发人员不能更好的了解数据库的全貌,这麼 对于数据库优化、管理等有极大的帮助。

--DBA 用户的所有的区的基本信息 

desc dba_extents 

select owner,segment_name,segment_type, 

       tablespace_name,extent_id,file_id,blocks 

from dba_extents;