Oracle 中常用資料字典大總結

來源:互聯網
上載者:User

前面呢,也斷斷續續的介紹了一些諸如 Sql*Plus 等等關於 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_”是包含資料庫執行個體的所有對象資訊!!!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.