Oracle常用資料字典介紹

來源:互聯網
上載者:User

Oracle常用資料字典介紹

資料字典是Oracle存放有關資料庫物件資訊的一組表和視圖結構,其用途是用來描述資料的。比如一個表的建立者資訊,建立時間資訊,所屬資料表空間資訊,使用者存取權限資訊等。它們由指令碼$oracle_home/rdbms/admin/catalog.sql建立,存放在SYSTEM資料表空間中。

Oracle中的資料字典有靜態和動態之分。 待用資料字典主要是由表和視圖組成,是在使用者訪問資料字典時不會發生改變的。資料字典中的表是不能直接被訪問的,但是可以訪問資料字典中的視圖。

  待用資料字典中的視圖分為三類,它們分別由三個首碼夠成:user_*、 all_*、 dba_*。

  user_*:該視圖儲存了關於目前使用者所擁有的對象的資訊。(即所有在該使用者模式下的對象)

  all_*:該試圖儲存了目前使用者能夠訪問的對象的資訊。(與user_*相比,all_* 並不需要擁有該對象,只需要具有訪問該對象的許可權即可)

  dba_*:該視圖儲存了資料庫中所有對象的資訊。(前提是目前使用者具有訪問這些資料庫的許可權,一般來說必須具有管理員權限)

--------------------------------------分割線 --------------------------------------

Oracle資料字典一致性鑒別

Oracle 字典和動態視圖

管理Oracle時常用的資料字典和動態效能檢視

Oracle自訂函數查詢資料字典項

複用Oracle資料字典解析出SQL語句中用到的所有表

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

--------------------------------------分割線 --------------------------------------

常用的待用資料字典視圖有:

1、使用者(user_users,user_sys_privs)

查看目前使用者的預設資料表空間

SQL>select username,default_tablespace from user_users;

查看目前使用者的角色

SQL>select * from user_role_privs;

查看目前使用者的系統許可權和表級許可權

SQL>select * from user_sys_privs;

SQL>select * from user_tab_privs;

顯示指定使用者所具有的系統許可權

SQL>select * from dba_sys_privs where grantee='GAME';

2、表(user_tables)

查看使用者下所有的表

SQL>select table_name,tablespace_name from user_tables;

查看名稱包含REG字元的表

SQL>select object_name,object_id from user_objects where instr(object_name,'REG')>0;

查看某表的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('table_name');

3、索引(user_indexes)

查看索引個數和類別

SQL>select index_name,index_type,table_name from user_indexes order by table_name;

查看索引被索引的欄位

SQL>select * from user_ind_columns where index_name=upper('index_name');

查看索引的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('index_name');

4、視圖(user_views)

查看視圖的名稱

SQL>select view_name from user_views;

查看建立視圖的select語句

SQL>set view_name,text_length from user_views;

SQL>set long 2000;

說明:可以根據視圖的text_length值設定set long 的大小

SQL>select text from user_views where view_name=upper('view_name');

5、約束條件(user_constraints)

查看某表的約束條件

SQL>select constraint_name, constraint_type,search_condition, table_name from user_constraints

where table_name = upper('table_name');

SQL>select c.constraint_name,c.constraint_type,cc.column_name

from user_constraints c,user_cons_columns cc

where c.owner = upper('table_owner') and c.table_name = upper('table_name')

and c.owner = cc.owner and c.constraint_name = cc.constraint_name

order by cc.position;

6、儲存函數和過程(user_objects )

查看函數和過程的狀態

SQL>select object_name,status from user_objects where object_type='FUNCTION';

SQL>select object_name,status from user_objects where object_type='PROCEDURE';

查看函數和過程的原始碼

SQL>select text from all_source where owner=user and name=upper('plsql_name');

7、資料表空間(dba_free_space 、dba_data_files)

查看錶空間的使用方式

SQL>select a.tablespace_name "資料表空間名稱",

100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "佔用率(%)",

round(a.bytes_alloc/1024/1024,2) "容量(M)",

round(nvl(b.bytes_free,0)/1024/1024,2) "空閑(M)",

round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "採樣時間"

from  (

select f.tablespace_name, sum(f.bytes) bytes_alloc, sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes

from dba_data_files f

group by tablespace_name

) a,

(select  f.tablespace_name,sum(f.bytes) bytes_free

from dba_free_space f

group by tablespace_name

) b,

where a.tablespace_name = b.tablespace_name;

查看錶空間物理檔案的名稱及大小

SQL>select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name;

動態資料字典是依賴資料庫啟動並執行效能的,反映資料庫啟動並執行一些內在資訊,所以在訪問這類資料字典時往往不是一成不變的。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

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.