久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle數(shù)據(jù)字典詳解

瀏覽:278日期:2023-05-30 16:13:55
目錄
  • 1. 什么是Oracle數(shù)據(jù)字典
  • 2. 數(shù)據(jù)字典的內(nèi)容
  • 3. 數(shù)據(jù)字典應(yīng)用示例

1. 什么是Oracle數(shù)據(jù)字典

數(shù)據(jù)字典(Data Dictionary)是Oracle元數(shù)據(jù)(Metadata)的存儲(chǔ)地點(diǎn),匯集了數(shù)據(jù)庫(kù)對(duì)象及數(shù)據(jù)庫(kù)運(yùn)行時(shí)需要的基礎(chǔ)信息。Oracle RDBMS使用數(shù)據(jù)字典記錄和管理對(duì)象信息和安全信息,用戶(hù)可以通過(guò)數(shù)據(jù)字典獲取數(shù)據(jù)庫(kù)相關(guān)信息,從而進(jìn)行數(shù)據(jù)庫(kù)管理、優(yōu)化和維護(hù)工作。

2. 數(shù)據(jù)字典的內(nèi)容

數(shù)據(jù)字典包括以下內(nèi)容:

  • 所有數(shù)據(jù)庫(kù)Schema對(duì)象的定義(表、視圖、索引、聚簇、同義詞、序列、過(guò)程、函數(shù)、包、觸發(fā)器等);
  • Oracle用戶(hù)名稱(chēng)、角色、權(quán)限等信息;
  • 完整性約束信息;
  • 數(shù)據(jù)庫(kù)的空間分配和使用情況;
  • 字段缺省值;
  • 審計(jì)信息;
  • 其他數(shù)據(jù)庫(kù)信息。

Oracle字典包括四個(gè)層次,分別為內(nèi)部RDBMS表(X)、基礎(chǔ)數(shù)據(jù)字典表、數(shù)據(jù)字典視圖和動(dòng)態(tài)性能視圖( V )、基礎(chǔ)數(shù)據(jù)字典表、數(shù)據(jù)字典視圖和動(dòng)態(tài)性能視圖(V)、基礎(chǔ)數(shù)據(jù)字典表、數(shù)據(jù)字典視圖和動(dòng)態(tài)性能視圖(V)。

(1)X$表

X$表是Oracle數(shù)據(jù)庫(kù)的核心部分,用于跟蹤內(nèi)部數(shù)據(jù)庫(kù)信息,維持?jǐn)?shù)據(jù)庫(kù)正常運(yùn)行,在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)由Oracle應(yīng)用程序動(dòng)態(tài)創(chuàng)建,不允許SYSDBA之外的用戶(hù)直接訪(fǎng)問(wèn)。X$表是加密命名的且不作文檔說(shuō)明。Oracle通過(guò)X$建立起其他大量視圖,供用戶(hù)查詢(xún)管理數(shù)據(jù)庫(kù)之用。

(2)數(shù)據(jù)字典表、數(shù)據(jù)字典視圖

數(shù)據(jù)字典表(Data Dictionary Table)用以存儲(chǔ)表、索引、約束以及其他數(shù)據(jù)庫(kù)結(jié)構(gòu)的信息,

表名都用$結(jié)尾(如tab$、obj$、ts$等),在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候通過(guò)運(yùn)行sql.bsq($ORACLE_HOME/RDBMS/admin目錄下)腳本來(lái)創(chuàng)建。

數(shù)據(jù)字典表的用戶(hù)都是sys,存在在system這個(gè)表空間里,Oracle對(duì)這些數(shù)據(jù)字典都分別建立了數(shù)據(jù)字典視圖,Oracle針對(duì)這些對(duì)象的范圍,分別把視圖命名為DBA_XXXX, ALL_XXXX和USER_XXXX,dictionary視圖記錄了所有的數(shù)據(jù)字典視圖的名稱(chēng)。

  • user_類(lèi)視圖:描述了當(dāng)前用戶(hù)schema下的對(duì)象;
  • all_類(lèi)視圖:描述了當(dāng)前用戶(hù)有權(quán)限訪(fǎng)問(wèn)到的所有對(duì)象的信息;
  • dba_類(lèi)視圖:包括了所有數(shù)據(jù)庫(kù)對(duì)象的信息;

通常USER_類(lèi)視圖不包含Owner字段,查詢(xún)返回當(dāng)前用戶(hù)的對(duì)象信息。

e.g.

SQL> select username from all_users; //查詢(xún)所有用戶(hù)
SQL> select username from dba_users; //查詢(xún)dba用戶(hù)
SQL> select table_name from user_tables;  //查詢(xún)當(dāng)前用戶(hù)的表
SQL> select table_name from all_tables;  //查詢(xún)所有用戶(hù)的表
SQL> select table_name from dba_tables;  //查詢(xún)包括系統(tǒng)表
SQL> select owner,constraint_name,constraint_type,table_name from user_constraints; 
SQL> select owner,constraint_name,constraint_type,table_name from all_ constraints; 
SQL> select owner,constraint_name,constraint_type,table_name from dba_ constraints ;

(3)動(dòng)態(tài)性能視圖

動(dòng)態(tài)性能(V$)視圖(Dynamic Performance View)記錄了數(shù)據(jù)庫(kù)運(yùn)行時(shí)的信息和統(tǒng)計(jì)數(shù)據(jù)。

創(chuàng)建X$表之后,Oracle創(chuàng)建了GV$和V$視圖,在GV$和V$之后,Oracle建立了GV_$和V_$視圖,隨后為這些視圖建立了公共同義詞。這些工作都是通過(guò)catalog.sql腳本實(shí)現(xiàn)的。通過(guò)V_$視圖,Oracle把V$視圖和普通用戶(hù)隔離,V_$視圖的權(quán)限可以授予其他用戶(hù),而Oracle不允許任何對(duì)于V$視圖的直接授權(quán)。Oracle提供了一些特殊視圖用以記錄其他視圖創(chuàng)建方式,如v$fixed_view_defition,可以查看視圖的定義。

SQL> select view_definition from v\$fixed_view_definition where view_name ="V$NLS_PARAMETERS";

3. 數(shù)據(jù)字典應(yīng)用示例

(1)查詢(xún)表的信息

查詢(xún)DBA_TABLES視圖可以獲取所有表的信息,包括表名、表空間、擁有者等等。例如,以下查詢(xún)語(yǔ)句可以獲取所有表的表名和表空間:

SQL> SELECT table_name, tablespace_name FROM dba_tables;

(2)查詢(xún)索引的信息

查詢(xún)DBA_INDEXES視圖可以獲取所有索引的信息,包括索引名、所屬表、索引類(lèi)型等等。例如,以下查詢(xún)語(yǔ)句可以獲取所有索引的信息:

SQL> SELECT index_name, table_name, index_type FROM dba_indexes;

(3)查詢(xún)用戶(hù)的信息

查詢(xún)DBA_USERS視圖可以獲取所有用戶(hù)的信息,包括用戶(hù)名、默認(rèn)表空間、臨時(shí)表空間等等。例如,以下查詢(xún)語(yǔ)句可以獲取所有用戶(hù)的用戶(hù)名和默認(rèn)表空間:

SQL> SELECT username, default_tablespace FROM dba_users;

(4)查詢(xún)表空間的信息

查詢(xún)DBA_TABLESPACES視圖可以獲取所有表空間的信息,包括表空間名、塊大小、狀態(tài)等等。例如,以下查詢(xún)語(yǔ)句可以獲取所有表空間的表空間名和狀態(tài):

SQL> SELECT tablespace_name, status FROM dba_tablespaces;

(5)查詢(xún)數(shù)據(jù)文件的信息

查詢(xún)DBA_DATA_FILES視圖可以獲取所有數(shù)據(jù)文件的信息,包括數(shù)據(jù)文件名、表空間名、文件大小等等。例如,以下查詢(xún)語(yǔ)句可以獲取所有數(shù)據(jù)文件的數(shù)據(jù)文件名和文件大小:

SQL> SELECT file_name, bytes FROM dba_data_files;

(6) 查詢(xún)數(shù)據(jù)庫(kù)的性能數(shù)據(jù)

查詢(xún)DBA_HIST_SNAPSHOT視圖可以獲取數(shù)據(jù)庫(kù)的歷史性能數(shù)據(jù),包括CPU利用率、內(nèi)存利用率、I/O等等。例如,以下查詢(xún)語(yǔ)句可以獲取數(shù)據(jù)庫(kù)的CPU利用率和內(nèi)存利用率:

SQL> SELECT begin_interval_time, end_interval_time, cpu_usage, memory_usage
FROM dba_hist_sysmetric_summary
WHERE metric_name IN ("CPU Usage Per Sec", "Memory Usage Per Sec")
ORDER BY begin_interval_time;

到此這篇關(guān)于Oracle數(shù)據(jù)字典詳解的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)字典內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Oracle
相關(guān)文章:
主站蜘蛛池模板: 文安县| 丽水市| 恩平市| 兴安县| 拜城县| 马边| 荃湾区| 祥云县| 饶阳县| 图片| 南宁市| 榆林市| 广东省| 临沭县| 康马县| 项城市| 环江| 古丈县| 平罗县| 开江县| 新竹县| 海丰县| 清涧县| 武邑县| 登封市| 习水县| 南丰县| 营山县| 维西| 博野县| 巴林右旗| 阳新县| 黄石市| 宿松县| 德清县| 虎林市| 西乡县| 文昌市| 青浦区| 宜宾县| 中阳县|