日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle-数据字典解读

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle-数据字典解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

官方文檔

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;

同義詞視圖

select OWNER,SYNONYM_NAME,TABLE_NAME from dba_synonyms ;

我們可以看到 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,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_

包括了所有數據庫對象的信息;

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;

Views with the Prefix ALL_

當前用戶有權限訪問到的所有對象的信息;
與user_*相比,all_* 并不需要擁有該對象,只需要具有訪問該對象的權限即可

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM ALL_OBJECTS ORDER BY OWNER, OBJECT_NAME;

Views with the Prefix USER_

當前用戶schema下的對象;

SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS ORDER BY OBJECT_NAME;

動態數據字典(動態性能視圖)

除了靜態數據字典中三類視圖, 其他的字典視圖中主要的是 V$視圖,之所以這樣叫是因為他們都是以 V$或 GV$開頭的。

這些視圖會不斷的進行更新,從而提供了關于內存和磁盤的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。

V$視圖是基于 X$虛擬視圖的。V$視圖是 SYS 用戶所擁有的,在缺省狀況下,只有 SYS 用戶和擁有 DBA 系統權限的用戶可以看到所有的視圖,沒有 DBA 權限的用戶可以看到 USER_和 ALL_視圖,但不能看到 DBA_視圖。

與 DBA_,ALL,和 USER_視圖中面向數據庫信息相反,這些視圖可視的給出了面向實例的信息。

更多請查看 Oracle-動態性能視圖解讀


《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Oracle-数据字典解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。