亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
886
2022-05-30
概述
官方文檔
oracle數據庫字典通常是在創建和安裝數據庫時被創建的,Oracle數據字典是Oracle數據庫系統工作的基礎,沒有數據字典的支持,Oracle數據庫系統就不能進行任何工作。數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。
Oracle 數據字典是有表和視圖組成,它們存放在 SYSTEM 表空間中, 數據字典中的表是不能直接被訪問的,但是可以訪問數據字典中的視圖。
Oracle字典視圖包括四個層次,分別為X$內部表、基礎數據字典表、數據字典視圖和動態性能視圖(v$或者GV$開頭)。
Not all views sets have three members. For example, the data dictionary
contains a DBA_LOCK view but no ALL_LOCK view.
查看全部的數據字典 dictionary
Oracle 11g中數據字典視圖2577個,神仙也記不住,但是有個dictionary視圖,該視圖里記錄了所有的數據字典視圖的名稱。所以當我們需要查找某個數據字典而又不知道這個信息在哪個視圖里的時候,就可以在dictionary視圖里找。
該視圖還有個同名詞dict。
select * from dict ORDER BY TABLE_NAME; 或 SELECT * FROM DICTIONARY ORDER BY TABLE_NAME;
1
2
3
同義詞視圖
select OWNER,SYNONYM_NAME,TABLE_NAME from dba_synonyms ;
1
我們可以看到 v$ 正好是v_$的同義詞,驗證了之前的關于oracle性能視圖的理論。
SQL> select OWNER,SYNONYM_NAME,TABLE_NAME from dba_synonyms a where a.table_name='DICTIONARY' ; OWNER SYNONYM_NAME TABLE_NAME --------------- ---------------- ----------------- PUBLIC DICTIONARY DICTIONARY PUBLIC DICT DICTIONARY
1
2
3
4
5
6
7
數據字典的內容
1,數據庫中所有模式對象的信息,如表、視圖、簇、及索引等。
2,分配多少空間,當前使用了多少空間等。
3,列的缺省值。
4,約束信息的完整性。
5,Oracle 用戶的名字。
6,用戶及角色被授予的權限。
7,用戶訪問或使用的審計信息。
8,其它產生的數據庫信息。
數據字典分類
數據字典分為 數據字典表 和 數據字典視圖
數據字典表
數據字典表里的數據是 Oracle 系統存放的系統數據,而普通表存放的是用戶的數據。
為了方便的區別這些表,數據字典表的名字都是用”$”結尾, 這些表屬于 SYS用戶,只有 Oracle 能夠進行讀寫。
數據字典表由$ORACLE_HOME/rdbms/admin/sql.bsq 腳本創建.
SYS 用戶下的這些數據字典表,存放在 system 表空間下面, 表名都用”$”結尾.
為了便于用戶對數據字典表的查詢, Oracle 對這些數據字典都分別建立了用戶視圖, 這樣即容易記住, 還隱藏了數據字典表表之間的關系, Oracle 針對這些對象的范圍,分別把視圖命名為 DBA_XXXX, ALL_XXXX 和 USER_XXXX。
數據字典視圖
動態性能視圖由腳本: $ORACLE_HOME/rdbms/admin/catalog.sql 創建
靜態數據字典(靜態性能視圖)
包括了所有數據庫對象的信息;
Views with the prefix DBA_ show all relevant information in the entire database.
DBA_ views are intended only for administrators.
前提是當前用戶具有訪問這些數據庫的權限,一般來說必須具有管理員權限。
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS ORDER BY OWNER, OBJECT_NAME;
1
2
當前用戶有權限訪問到的所有對象的信息;
與user_*相比,all_* 并不需要擁有該對象,只需要具有訪問該對象的權限即可
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM ALL_OBJECTS ORDER BY OWNER, OBJECT_NAME;
1
2
當前用戶schema下的對象;
SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS ORDER BY OBJECT_NAME;
1
2
動態數據字典(動態性能視圖)
除了靜態數據字典中三類視圖, 其他的字典視圖中主要的是 V$視圖,之所以這樣叫是因為他們都是以 V$或 GV$開頭的。
這些視圖會不斷的進行更新,從而提供了關于內存和磁盤的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。
V$視圖是基于 X$虛擬視圖的。V$視圖是 SYS 用戶所擁有的,在缺省狀況下,只有 SYS 用戶和擁有 DBA 系統權限的用戶可以看到所有的視圖,沒有 DBA 權限的用戶可以看到 USER_和 ALL_視圖,但不能看到 DBA_視圖。
與 DBA_,ALL,和 USER_視圖中面向數據庫信息相反,這些視圖可視的給出了面向實例的信息。
更多請查看 Oracle-動態性能視圖解讀
Oracle 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。