读书人

【转】Oracle 中惯用数据字典大总结

发布时间: 2012-07-02 17:46:22 作者: rapoo

【转】Oracle 中常用数据字典大总结

对于 Oracle 这样的大型数据库呢,自身的运行和维护也是个不得了的事情,

所以在 Oracle 中存在 n 多的数据字典,数据字典作为一种元数据呢,

在 Oracle 中的作用就是存放整个数据库实例的基本信息,实质上也就是一组表,

这些数据字典呢,很多都是归 SYS 用户所有的。

这一篇博文呢就是针对 Oracle 的数据字典做一个比较全面的介绍,

介绍方法,就是列出一些常用的数据字典了,

下面列出的这些数据字典,本人均在 Oracle 11g R1 上,

通过 Oracle Sql Developer 进行过测试的,全部通过。

其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。

---数据库实例的基本信息?
desc?v$instance;?
select * from v$instance;

--数据文件的基本信息?
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;

--临时文件的基本信息?
desc?dba_temp_files;?
select file_name,file_id,tablespace_name,status,?
?????? bytes/1024/1024 大小MB?
from dba_temp_files;

--控制文件的基本信息?
desc?v$controlfile;?
select name,status,is_recovery_dest_file,?
?????? block_size,file_size_blks?
from v$controlfile;

--日志文件的基本信息?
desc?v$logfile;?
select group#,status,type,member,is_recovery_dest_file?
from v$logfile;

--数据库的基本信息?
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;

--日志文件参数信息?
show parameter log_archive_dest;

--访问参数文件?
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$bgprocess;?
select paddr,pserial#,name,description,error from v$bgprocess;

--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;

--DBA 用户的所有的视图的基本信息?
desc?dba_views;?
select owner,view_name,read_only from dba_views;

--DBA 用户的所有的同义词的基本信息?
desc?dba_synonyms;?
select owner,synonym_name,table_owner,?
?????? table_name,db_link?
from dba_synonyms;

--DBA 用户的所有的序列的信息?
desc?dba_sequences;?
select sequence_owner,sequence_name,min_value,max_value,?
?????? cycle_flag?
from dba_sequences;

--DBA 用户的所有的约束的信息?
desc?dba_constraints;?
select owner,constraint_name,constraint_type,?
?????? table_name,status?
from dba_constraints;

--DBA 用户的所有的索引的基本信息?
desc?dba_indexes;?
select owner,index_name,index_type,table_owner,table_name,?
?????? table_type,uniqueness,compression,logging,status?
from dba_indexes;

--DBA 用户的所有的触发器的基本信息?
desc?dba_triggers;?
select owner,trigger_name,trigger_type,?
?????? table_owner,table_name,column_name?
from dba_triggers;

--DBA 用户的所有的存储过程的基本信息?
desc?dba_source;?
select owner,name,type,line,text from dba_source;

--DBA 用户的所有的段的基本信息?
desc?dba_segments;?
select owner,segment_name,segment_type,?
?????? tablespace_name,blocks,extents?
from dba_segments;

--DBA 用户的所有的区的基本信息?
desc?dba_extents?
select owner,segment_name,segment_type,?
?????? tablespace_name,extent_id,file_id,blocks?
from dba_extents;

--DBA 用户的所有的对象的基本信息?
desc?dba_objects;?
select owner,object_name,subobject_name,?
?????? object_id,data_object_id,object_type,?
?????? created,status,namespace?
from dba_objects;

--当前用户可以访问的所有的基表?
desc?cat;?
select table_name from cat;

--当前用户可以访问的所有的基表,视图,同义词?
desc?system.tab;?
select tname,tabtype,clusterid from system.tab;

--构成数据字典的所有的表信息?
desc?dict;?
select table_name,comments from dict;

-- 查询关于表空间的一些基本的数据字典?
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;

--归档状态的一些基本信息?
desc?v$archived_log;?
select name,dest_id,blocks,block_size,?
?????? archived,status,backup_count?
from v$archived_log;

--关于内存结构的一些信息?
desc?v$sga;?
select name,value/1024/1024 大小MB from v$sga;

desc?v$sgastat;?
select pool,name,bytes from v$sgastat;

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

desc?v$sql;?
select sql_text,sql_id,cpu_time from v$sql;

上面的呢就是 Oracle 中较常使用的数据字典了,

需要提一下的是,上面有很多都是以 “dba_”开头的数据字典,

比如有 dba_tables ,其实呢,这个是列出了数据库中所有的数据,

比如使用 dba_tables 就会列出数据库中所有的数据表(n 多),

但是您可以使用 user_tables 或者 all_tables 来代替 dba_tables,当然有一些是没有与之对应的,

这样呢,就只会列出当前登录用户允许查看的数据表了,

对于以“dba_”基本上都是有与之相对应的“user_”和“all_”,

其中“user_”对应的是记录当前登陆用户的对象,

而“all_”则是记录当前登陆用户的对象信息以及被授权访问的对象信息,

而“dba_”是包含数据库实例的所有对象信息!!!

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

读书人网 >其他数据库

热点推荐