ORACLE進階(三)數據字典詳解

      網友投稿 882 2025-04-01

      #oracle進階(三)數據字典詳解

      ##一、oracle數據字典

      數據字典是Oracle存放有關數據庫信息的地方,其用途是用來描述數據的。比如一個表的創建者信息,創建時間信息,所屬表空間信息,用戶訪問權限信息等。當用戶在對數據庫中的數據進行操作時遇到困難就可以訪問數據字典來查看詳細的信息。

      Oracle中的數據字典有靜態和動態之分。靜態數據字典主要是在用戶訪問數據字典時不會發生改變的,但動態數據字典是依賴數據庫運行的性能的,反映數據庫運行的一些內在信息,所以在訪問這類數據字典時往往不是一成不變的。以下分別就這兩類數據字典來論述。

      ###1. 靜態數據字典

      這類數據字典主要是由表和視圖組成,應該注意的是,數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。靜態數據字典中的視圖分為三類,它們分別由三個前綴夠成:user_、 all_、 dba_。

      user_

      該視圖存儲了關于當前用戶所擁有的對象的信息。(即所有在該用戶模式下的對象)

      all_*

      該試圖存儲了當前用戶能夠訪問的對象的信息。(與user_相比,all_ 并不需要擁有該對象,只需要具有訪問該對象的權限即可)

      dba_*

      該視圖存儲了數據庫中所有對象的信息。(前提是當前用戶具有訪問這些數據庫的權限,一般來說必須具有管理員權限)

      從上面的描述可以看出,三者之間存儲的數據肯定會有重疊,其實它們除了訪問范圍的不同以外(因為權限不一樣,所以訪問對象的范圍不一樣),其他均具有一致性。具體來說,由于數據字典視圖是由SYS(系統用戶)所擁有的,所以在卻省情況下,只有SYS和擁有DBA系統權限的用戶可以看到所有的視圖。沒有DBA權限的用戶只能看到user_*和all_*視。如果沒有被授予相關的SELECT權限的話,他們是不能看到 dba_*視圖的。

      由于三者具有相似性,下面以user_為例介紹幾個常用的靜態視圖:

      user_users視圖

      主要描述當前用戶的信息,主要包括當前用戶名、帳戶id、帳戶狀態、表空間名、創建時間等。例如執行下列命令即可返回這些信息。

      select * from user_users

      user_tables視圖

      主要描述當前用戶擁有的所有表的信息,主要包括表名、表空間名、簇名等。通過此視圖可以清楚了解當前用戶可以操作的表有哪些。執行命令為:select * from user_tables

      user_objects視圖

      主要描述當前用戶擁有的所有對象的信息,對象包括表、視圖、存儲過程、觸發器、包、索引、序列等。該視圖比user_tables視圖更加全面。例如, 需要獲取一個名為“package1”的對象類型和其狀態的信息,可以執行下面命令:

      select object_type,status   from user_objects   where object_name=upper(‘package1’);

      注意:upper的使用,數據字典里的所有對象均為大寫形式,而PL/SQL里不是大小寫敏感的,所以在實際操作中一定要注意大小寫匹配。

      user_tab_privs視圖

      該視圖主要是存儲當前用戶下對所有表的權限信息。比如,為了了解當前用戶對table1的權限信息,可以執行如下命令:

      select * from user_tab_privs where table_name=upper(‘table1’)

      了解了當前用戶對該表的權限之后就可以清楚的知道,哪些操作可以執行,哪些操作不能執行。

      前面的視圖均為user_開頭的,其實all_開頭的也完全是一樣的,只是列出來的信息是當前用戶可以訪問的對象而不是當前用戶擁有的對象。對于dba_開頭的需要管理員權限,其他用法也完全一樣,這里就不再贅述了。

      ###2. 動態數據字典

      Oracle包含了一些潛在的由系統管理員如SYS維護的表和視圖,由于當數據庫運行的時候它們會不斷進行更新,所以稱它們為動態數據字典(或者是動態性能視圖)。這些視圖提供了關于內存和磁盤的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。

      Oracle中這些動態性能視圖都是以v 開 頭 的 視 圖 , 比 如 v 開頭的視圖,比如v 開頭的視圖,比如vaccess。下面就幾個主要的動態性能視圖進行介紹。

      v a c c e s s 該 視 圖 顯 示 數 據 庫 中 鎖 定 的 數 據 庫 對 象 以 及 訪 問 這 些 對 象 的 會 話 對 象 ( s e s s i o n 對 象 ) 。 運 行 如 下 命 令 : ‘ s e l e c t ? f r o m v access 該視圖顯示數據庫中鎖定的數據庫對象以及訪問這些對象的會話對象(session對象)。   運行如下命令: `select * from v access    該視圖顯示數據庫中鎖定的數據庫對象以及訪問這些對象的會話對象(session對象)。  運行如下命令:   ‘select?fromvaccess結果如下:(因記錄較多,故這里只是節選了部分記錄)SID

      OWNER OBJECT TYPE

      27 DKH V A C C E S S C U R S O R 27 P U B L I C V ACCESS CURSOR 27 PUBLIC V ACCESSCURSOR27PUBLICVACCESS SYNONYM

      27 SYS DBMS_APPLICATION_INFO PACKAGE

      27 SYS GV A C C E S S V I E W ‘ ‘ v ACCESS VIEW`   `v ACCESSVIEW‘  ‘vsession該視圖列出當前會話的詳細信息。由于該視圖字段較多,這里就不列詳細字段,為了解詳細信息,可以直接在sql*plus命令行下鍵入:desc v$session即可。v a c t i v e i n s t a n c e ‘ 該 視 圖 主 要 描 述 當 前 數 據 庫 下 的 活 動 的 實 例 的 信 息 。 依 然 可 以 使 用 s e l e c t 語 句 來 觀 察 該 信 息 。 ‘ v active_instance` 該視圖主要描述當前數據庫下的活動的實例的信息。依然可以使用select語句來觀察該信息。   `v activei nstance‘    該視圖主要描述當前數據庫下的活動的實例的信息。依然可以使用select語句來觀察該信息。  ‘vcontext該視圖列出當前會話的屬性信息。比如命名空間、屬性值等。 ###3.小結   以上是Oracle的數據字典方面的基本內容,還有很多有用視圖因為篇幅原因這里不能一一講解,希望大家在平時使用中多留心。總之,運用好數據字典技術,可以讓數據庫開發人員能夠更好的了解數據庫的全貌,這樣對于數據庫優化、管理等有極大的幫助。 ##二、Oracle 中常用數據字典   下面列出的這些數據字典,均在 Oracle 11g R1 上,通過 Oracle Sql Developer 進行過測試的,全部通過。其中很多的數據字典都必須以 system 或者是 sysdba 用戶登錄才能夠使用的。—數據庫實例的基本信息

      desc v i n s t a n c e ; s e l e c t ? f r o m v instance; select * from v instance;select?fromvinstance;`

      --數據文件的基本信息 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;

      ORACLE進階(三)數據字典詳解

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

      ![這里寫圖片描述](https://img-blog.csdnimg.cn/img_convert/e415b30dbbbc5ab4a2c1175b0e899fa7.png)

      ![這里寫圖片描述](https://img-blog.csdnimg.cn/img_convert/5ea7f92a4b50d8465587c45e4b34108a.png)

      ![這里寫圖片描述](https://img-blog.csdnimg.cn/img_convert/f26b6c802951d54cd92c22204011ed16.png)

      Oracle 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2003刪除重復項的教程
      下一篇:WPS中,如何默認設置為“閱讀模式”?而不是使用這個功能的時候都要手動啟動。
      相關文章
      亚洲AV日韩综合一区尤物| 午夜亚洲国产理论秋霞| 久久av无码专区亚洲av桃花岛| 久久亚洲中文字幕精品一区四| 在线a亚洲v天堂网2018| 亚洲AV无码一区二区三区电影| 亚洲一卡一卡二新区无人区| 亚洲国产日韩综合久久精品| 亚洲色欲色欲www| 亚洲偷偷自拍高清| 亚洲综合欧美色五月俺也去| 在线观看日本亚洲一区| 亚洲综合一区国产精品| 亚洲综合色婷婷在线观看| 亚洲另类无码专区首页| 亚洲中文字幕无码mv| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲高清国产拍精品熟女| 日韩国产欧美亚洲v片| 国产成人精品亚洲| 国产精品亚洲综合一区| 亚洲色大成网站www永久一区| 亚洲综合国产一区二区三区| 亚洲精品~无码抽插| 亚洲成a人片77777老司机| 久久久久亚洲AV片无码下载蜜桃| 久久亚洲中文字幕精品有坂深雪| 91嫩草亚洲精品| 亚洲高清中文字幕免费| 亚洲av日韩av永久在线观看| 国产精品亚洲综合一区在线观看| 亚洲男女内射在线播放| 亚洲日韩在线观看| 亚洲啪啪综合AV一区| 亚洲国产一区在线| 亚洲一区二区三区久久久久| 亚洲国产成人AV在线播放| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲美女在线国产| 亚洲成AV人片在| 亚洲成综合人影院在院播放|