常用數據字典
USER_ 記錄用戶對象的信息,如user_tables包含用戶創建的所有表;user_views,user_constraints等;
ALL_ 記錄用戶對象的信息及被授權訪問的對象信息;
DBA_ 記錄數據庫實例的所有對象的信息,如DBA_USERS包含數據庫實例中所有用戶的信息,DBA的信息包含user和all的信息;
V$ 當前實例的動態視圖,包含系統管理和優化使用的視圖;
GV_ 分佈環境下所有實例的動態視圖,包含系統管理和優化使用的視圖, 這裏的GV表示 Global v$的意思;
如當前分佈環境下啓動多個實例:
set line 160 (每行顯示160個字符)
select inst_id,sid,lmode from gv$lock where inst_id = 1 or inst_id=2;
oracle常用數據字典,oracle10增加了不少數據字典10g r1 有1713個,r2有1870個:
1 基本的數據字典:
DBA_TABLES 所有用戶的所有表的信息;
DBA_TAB_COLUMNS 所有用戶的表的列(字段)信息;
DBA_VIEWS 所有用戶的所有視圖信息;
DBA_SYNONYMS 所有用戶同義詞信息;
DBA_SEQUENCES 所有用戶序列信息;
DBA_CONSTRAINTS 所有用戶的表約束信息;
DBA_INDEXES 所有用戶索引的簡要信息;
DBA_IND_COLUMNS 所有用戶索引的列信息;
DBA_TRIGGERS 所有用戶觸發器信息 ;
DBA_SOURCE所有用戶存儲過程源代碼信息;
DBA_PROCEDUS 所有用戶存儲過程;
DBA_SEGMENTS 所有用戶段(表,索引,Cluster)使用空間信息;
DBA_EXTENTS 所有用戶段的擴展段信息;
DBA_OBJECTS 所有用戶對象的基本信息(包括素引,表,視圖,序列等);
CAT 當前用戶可以訪問的所有的基表 ;
TAB 當前用戶創建的所有基表,視圖,同義詞等;
DICT 構成數據字典的所有表的信息;
2 與數據庫組件相關的數據字典:
數據庫:
V$DATABASE 同義詞 V_$DATABASE,記錄系統的運行情況;
表空間:
DBA_TABLESPACES 記錄系統表空間的基本信息;
DBA_DATA_FILES 記錄系統數據文件及表空間的基本信息;
DBA_FREE_SPACE 記錄系統表空間的剩餘空間的信息;
控制文件:
V$CONTROLFILE 記錄系統控制文件的路徑信息;
V$PARAMETER 記錄系統各參數的基本信息;
v$CONTROLFILE_RECORD_SECTION 記錄系統控制運行的基本信息;
數據文件:
DBA_DATA_FILES 記錄系統數據文件及表空間的基本信息;
v$DATAFILE 記錄來自控制文件的數據文件信息;
v$FILESTAT 記錄數據文件讀寫的基本信息 ;
動態性能視圖(V$)
--查看VGA信息:
show sga;
select * from v$sgastat;
--可以通過以下幾個動態性能視圖查看信息:
V$sysstat 系統統計信息
V$sesstat 用戶會話統計信息
V$pgastat 顯示內存使用統計信息
V$sql_workarea SQL遊標所用工作區的信息
V$sql_workarea_active 當前系統工作區的信息
--在V$process動態性能視圖中可以查詢到每個Oracle進程的PGA分配的內存和已使用的內存情況,
--其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
20個常用的動態性能視圖:
(1)v$sysstat
(2)v$sesstat
(3)v$sql & v$sql_plan
(4)v$sqltext & v$sqlarea
(5)v$session
(6)v$session_wait & v$session_event
(7)v$process
(8)v$lock & v$locked_object
(9)v$filestat
(10)v$session_longops
(11)v$latch$ v$latch_children
(12)v$db_object_cache
(13)v$open_cursor
(14)v$parameter & v$system_parameter
(15)v$rollstat
(16)v$rowcache
(17)v$segstat & v$segment_statistics
(18)v$system_event
(19)v$undostat
(20)v$waitstat
SQL> select pid,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process;
--查看後臺進程:
SELECT * FROM v$bgprocess WHERE paddr <> '00';
還可以通過和 v$bgprocess 連接查詢到後臺進程的名字:
select s.sid sid, p.spid threadid, p.program processname, bg.name name from v$process p, v$session s, v$bgprocess bg
where p.addr = s.paddr and p.addr = bg.paddr and bg.paddr <> '00';