【Oracle11g】16_数据字典和动态性能视图

若如初见. 提交于 2020-04-18 09:58:35

1.数据字典

数据字典就是数据的数据。记录了数据库的最基本的信息。
数据字典基本表由$ORACLE_HOME\RDBMS\ADMIN\sql.bsq创建,数据字典表大多以$结尾,属于sys用户,存放在system表空间。用户不能手动去修改数据字典基本表。

2.数据字典

数据字典视图分为三种类型:USER_、ALL_、DBA_。

  • USER_类型的视图表示当前登录用户拥有的信息。
  • ALL_类型的视图表示当前登录用户有权限看到的信息。
  • DBA_类型的视图表示数据库管理员能够看到的信息,也就是整个数据库范围内的信息。

例如:user_tables、all_tables、dba_tables
user_tables对应了2个数据库对象,一个是数据字典视图、一个是同义词,而且是先基于数据字典基本表创建了数据字典视图,然后为该视图创建了一个同名的同义词。

详细查看user_tables

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

SQL> select text from dba_views where view_name='USER_TABLES';  -- 查询该视图的创建语句


SQL> select d.owner,d.table_name from dba_synonyms d where d.synonym_name='USER_TABLES'; -- 该同义词是由基于上述视图创建的
OWNER                          TABLE_NAME
------------------------------ ------------------------------
PUBLIC                         USER_TABLES

3.动态性能视图

动态性能视图:存储数据库中每时每刻都在变化的信息,主要是数据库的活动状态信息,它把存储在内存里的信息、和存储在控制文件里的信息,以视图的形式展现出来。
常见的动态性能视图:
v$parameter:初始化参数文件中所有项的值,v$process:当前进程的信息,v$session:有关会话的信息,v$sysstat:基于当前操作会话进行的系统统计,v$log:从控制文件中提取有关重做日志组的信息,
v$logfile有关实例重置日志组文件名及其位置的信息,
v$lock:当前进程已获得的和正在请求的锁定信息,
v$transaction:数据库的事务信息。
v$fixed_view_definition中记录了所有的动态性能视图的定义信息。





4.常用数据字典实战演练

下面列出的这些数据字典,均在 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;
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!