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

  • 时间:
  • 浏览:1
  • 来源:彩神快乐8_神彩快乐8官方



v$session

该视图列出当都在话的完整信息。将会该视图字段较多,这里就不列完整字段,为了解完整信息,时需直接在sql*plus命令行下键入:desc v$session即可。

v$active_instance

该视图主要描述当前数据库下的活动的实例的信息。依然时需使用select励志的话 来观察该信息。

v$context

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

desc dba_source

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

  select object_type,status

from user_objects

where object_name=upper(‘package1’);

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

--数据库的基本信息 

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$instance

select * from v$instance;



all_*

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

  2. 动态数据字典

Oracle涵盖了或多或少潜在的由系统管理员如SYS维护的表和视图,将会当数据库运行的前一天它们会不断进行更新,或多或少称它们为动态数据字典(将会是动态性能视图)。哪些视图提供了关于内存和磁盘的运行情況,或多或少大伙儿儿只有对其进行只读访问而只有修改它们。

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

v$access

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

运行如下命令:

select * from v$access


结果如下:(因记录较多,故这里随后 节选了主次记录)

-- 查询关于表空间的或多或少基本的数据字典 

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;

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

了解了当前用户对该表的权限前一天就时需清楚的知道,哪些操作时需执行,哪些操作只有执行。

前面的视图均为user_开头的,虽然all_开头的也完都在一样的,随后 列出来的信息是当前用户时需访问的对象而都在当前用户拥有的对象。对于dba_开头的时需管理员权限,或多或少用法也完整一样,这里就不再赘述了。

--后台线程池信息 

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视图

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

desc dba_views

select owner,view_name,read_only from dba_views;

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

--控制文件的基本信息 

desc v$controlfile

select name,status,is_recovery_dest_file, 

       block_size,file_size_blks 

from v$controlfile;

二、Oracle 中常用数据字典

user_tab_privs视图

--数据文件的基本信息 

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

上方的呢随后 Oracle 中较常使用的数据字典了,时需提一下的是,上方有或多或少都在以 “dba_”开头的数据字典,比如有 dba_tables ,虽然呢,你是什么是列出了数据库中所有的数据,比如使用 dba_tables 就会列出数据库中所有的数据表(n 多),随后 您时需使用 user_tables 将会 all_tables 来代替 dba_tables,当然有或多或少是没办法 与之对应的,没办法 呢,就只会列出当前登录用户允许查看的数据表了,对于以“dba_”基本上都在有与之相对应的“user_”和“all_”,其中“user_”对应的是记录当前登陆用户的对象,而“all_”则是记录当前登陆用户的对象信息以及被授权访问的对象信息,而“dba_”是涵盖数据库实例的所有对象信息!!!

SID

--当前用户时需访问的所有的基表,视图,同义词 

desc system.tab

select tname,tabtype,clusterid from system.tab;

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

desc dba_extents 

select owner,segment_name,segment_type, 

       tablespace_name,extent_id,file_id,blocks 

from dba_extents;

  下面列出的哪些数据字典,均在 Oracle 11g R1 上,通过 Oracle Sql Developer 进行过测试的,完整通过。其中或多或少的数据字典都时需以 system 将会是 sysdba 用户登录才都可以使用的。

--归档情況的或多或少基本信息 

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;

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

desc dba_segments

select owner,segment_name,segment_type, 

       tablespace_name,blocks,extents 

from dba_segments;

--临时文件的基本信息 

desc dba_temp_files

select file_name,file_id,tablespace_name,status, 

       bytes/1024/1024 大小MB 

from dba_temp_files;

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

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

1. 静态数据字典 累似 数据字典主随后 由表和视图组成,应该注意的是,数据字典中的表是只有直接被访问的,随后 时需访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由4个多 前缀够成:user_*、 all_*、 dba_*。

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

select owner,constraint_name,constraint_type, 

       table_name,status 

from dba_constraints;

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

desc dict

select table_name,comments from dict;

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

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$logfile

select group#,status,type,member,is_recovery_dest_file 

from v$logfile;

原文链接:

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

desc dba_synonyms

select owner,synonym_name,table_owner, 

       table_name,db_link 

from dba_synonyms;

 一、Oracle数据字典

--当前用户时需访问的所有的基表 

desc cat

select table_name from cat;

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

desc dba_triggers

select owner,trigger_name,trigger_type, 

       table_owner,table_name,column_name 

from dba_triggers;

user_objects视图

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

desc dba_sequences

select sequence_owner,sequence_name,min_value,max_value, 

       cycle_flag 

from dba_sequences;

3.小结 以上是Oracle的数据字典方面的基本内容,还有或多或少有用视图将会篇幅原因这里只有一一讲解,希望大伙儿儿在平时使用中多留心。总之,运用好数据字典技术,时需让数据库开发人员都可以更好的了解数据库的全貌,没办法 对于数据库优化、管理等有极大的帮助。

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

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

desc dba_objects

select owner,object_name,subobject_name, 

       object_id,data_object_id,object_type, 

       created,status,namespace 

from dba_objects;

user_* 

desc v$sql

select sql_text,sql_id,cpu_time from v$sql;

--日志文件参数信息 

show parameter log_archive_dest;

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