ORACLE常用資料字典介紹
資料字典是Oracle存放有關資料庫物件資訊的一組表和檢視結構,其用途是用來描述資料的。比如一個表的建立者資訊,建立時間資訊,所屬表空間資訊,使用者訪問許可權資訊等。它們由指令碼$oracle_home/rdbms/admin/catalog.sql建立,存放在SYSTEM表空間中。
Oracle中的資料字典有靜態和動態之分。 靜態資料字典主要是由表和檢視組成,是在使用者訪問資料字典時不會發生改變的。資料字典中的表是不能直接被訪問的,但是可以訪問資料字典中的檢視。
靜態資料字典中的檢視分為三類,它們分別由三個字首夠成:user_*、 all_*、 dba_*。
user_*:該檢視儲存了關於當前使用者所擁有的物件的資訊。(即所有在該使用者模式下的物件)
all_*:該試圖儲存了當前使用者能夠訪問的物件的資訊。(與user_*相比,all_* 並不需要擁有該物件,只需要具有訪問該物件的許可權即可)
dba_*:該檢視儲存了資料庫中所有物件的資訊。(前提是當前使用者具有訪問這些資料庫的許可權,一般來說必須具有管理員許可權)
常用的靜態資料字典檢視有:
常用的動態資料字典檢視有:
1、查詢有哪些資料庫例項在執行(v$active_instance)
其他一些可能會用到的資料字典有:
1、使用者(user_users,user_sys_privs)
2、表(user_tables)
檢視當前使用者的預設表空間
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 的大小
說明:可以根據檢視的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;
動態資料字典是依賴資料庫執行的效能的,反映資料庫執行的一些內在資訊,所以在訪問這類資料字典時往往不是一成不變的。
Oracle包含了一些潛在的由系統管理員如SYS維護的表和檢視,由於當資料庫執行的時候它們會不斷進行更新,所以稱它們為動態資料字典(或者是動態效能檢視)。這些檢視提供了關於記憶體和磁碟的執行情況,所以我們只能對其進行只讀訪問而不能修改它們。
常用的動態資料字典檢視有:
1、查詢有哪些資料庫例項在執行(v$active_instance)
SQL>select inst_name from v$active_instances;
5、檢視鎖(lock)情況(v$session,v$lock)
2、檢視資料庫的建立日期和歸檔方式(v$database)
SQL>Select Created, Log_Mode, Log_Mode From V$Database;
3、檢視有哪些使用者連線( v$session, v$process)
SQL>select s.osuser os_user_name,
decode(sign(48 - command), 1, to_char(command),
decode(sign(48 - command), 1, to_char(command),
'Action Code #' || to_char(command) ) action, p.program oracle_process,
status session_status, s.terminal terminal, s.program program,
s.username user_name, s.fixed_table_sequence activity_meter, s.sid, s.serial# serial_num
from v$session s, v$process p
where s.paddr=p.addr and s.type = 'USER'
order by s.username, s.osuser
4、檢視還沒提交的事務(v$transaction)
SQL>select * from v$locked_object;
SQL>select * from v$transaction;
5、檢視鎖(lock)情況(v$session,v$lock)
SQL>select /*+ RULE */ ls.osuser os_user_name, ls.username user_name,
decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX','Transaction enqueue lock', 'UL', 'User supplied lock') lock_type,
o.object_name object,
decode(ls.lmode, 1, null, 2, 'Row Share', 3,'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null) lock_mode,
decode(ls.lmode, 1, null, 2, 'Row Share', 3,'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null) lock_mode,
o.owner,ls.sid,ls.serial# serial_num,ls.id1,ls.id2
from sys.dba_objects o,
(select s.osuser, s.username, l.type,l.lmode,s.sid, s.serial#, l.id1, l.id2 from v$session s,v$lock l where s.sid = l.sid ) ls
(select s.osuser, s.username, l.type,l.lmode,s.sid, s.serial#, l.id1, l.id2 from v$session s,v$lock l where s.sid = l.sid ) ls
where o.object_id = ls.id1 and o.owner<> 'SYS'
order by o.owner, o.object_name
order by o.owner, o.object_name
1、檢視控制檔案
SQL>select name from v$controlfile;
2、檢視日誌檔案
SQL>select member from v$logfile;
3、檢視資料庫的版本
SQL>Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
4、取得伺服器的IP 地址
SQL>select utl_inaddr.get_host_address from dual;
SQL>SELECT UTL_INADDR.get_host_name('192.168.3.235') FROM dual;
5、取得客戶端的IP地址
SQL>select sys_context('userenv','host'),sys_context('userenv','ip_address') from dual;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26224914/viewspace-1244005/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料字典的用途介紹Oracle
- Oracle常用資料字典Oracle
- oracle常用的資料字典Oracle
- Oracle常用資料字典表Oracle
- oracle資料字典簡介Oracle
- oracle常用資料字典.檢視Oracle
- 常用Oracle資料庫調優工具介紹Oracle資料庫
- Oracle中的資料字典技術及常用資料字典總結Oracle
- Oracle 常用HINT介紹Oracle
- 資料字典生成工具及文件工具作用介紹
- 大資料常用分析工具介紹大資料
- 工作中 Oracle 常用資料字典集錦Oracle
- oracle10g 常用資料字典總結Oracle
- (轉)Oracle常用資料字典查詢語句Oracle
- oracle常用函式介紹Oracle函式
- 資料字典簡介
- Oracle 常用資料字典表、檢視的總結Oracle
- oracle10g 常用資料字典總結 (zt)Oracle
- Oracle 常用資料字典檢視、表的總結Oracle
- Oracle資料型別介紹Oracle資料型別
- oracle 資料字典Oracle
- Oracle 資料字典和資料字典檢視Oracle
- 資料字典簡介和資料字典命中率
- Python字典介紹Python
- (轉)Oracle常用dump命令介紹Oracle
- 資料倉儲—資料庫—Oracle 介紹資料庫Oracle
- oracle 資料字典(轉)Oracle
- Oracle資料字典 (轉)Oracle
- 生成oracle資料字典Oracle
- Oracle 資料字典 (轉)Oracle
- Oracle的資料字典Oracle
- Oracle常用dump命令介紹[轉貼]Oracle
- Oracle資料庫審計功能介紹Oracle資料庫
- Oracle資料庫字符集介紹Oracle資料庫
- Oracle 資料字典學習Oracle
- Oracle 資料字典大全 ZTOracle
- 瞭解Oracle資料字典Oracle
- python字典詳細介紹Python