收藏!Oracle常用數據字典表、視圖的總結,都在這里了
一數據字典的分類
- 靜態數據字典表
- 靜態數據字典視圖
- 動態數據字典表
- 動態數據字典視圖
二 數據字典的使用
1. 靜態數據字典表的使用
靜態數據字典表只能由 ORACLE 進行維護。
2. 靜態數據字典視圖的使用 *
通常用戶通過對靜態數據字典視圖的查詢可以獲取所需要的所有數據庫信息。
Oracle 靜態數據字典分類
名稱前綴 含義 user_ 包含了當前數據庫用戶所擁有的所有的模式對象的信息 all_ 包含了當前數據庫用戶可以訪問的所有的模式對象的信息 dba_ 包含了所有數據庫對象信息,只有具有 DBA 角色的用戶才能而過訪 |
問的這些視圖
例如: select * from dba_tables select * from all_tables select * from user_tables; |
注: dba_ 開頭的 必須是 sys 用戶所有 ,非 sys 用戶 需要在前面加 sys 前綴
下面都是一些常用的視圖家族,都有一個 DBA_ ALL_ USER_ 的視圖
常用的視圖家族
col_privs 包含了表的列權限信息,包含授予者,被授予者和權限名稱等信息, extents 存儲分配信息,包括數據段名 表空間名和分區編號,分區大小 indexes 索引信息 包含索引類型, 唯一性, 索引作用等表的信息 ind_columns 索引列信息 包括索引上的列的排序方式等信息 object 對象信息, 包括對象名稱 類型 創建時間 等信息 segments 表和索引的數據段信息,包括表空間,存儲設置等信息 sequences 序列信息 包含序列名稱 ,循環性,***值等信息 source 除觸發器之外的所有存儲過程,函數,包的源代碼信息 synonyms 同義詞信息 包括引用的對象等信息 sys_privs 系統權限信息 包括系統權限名稱 授予者 tab_columns 表和視圖的列信息 ,包括列的數據類型等信息 tab_privs 表權限信息 tables 表信息 包括表所屬的表空間 ,存儲參數 ,數據行數量等信息。 triggers 觸發器信息 包括觸發器的類型,事件。觸發器體等信息 users 用戶信息 。包括用戶臨時和默認的表空間的類型 views 視圖 信息
權限視圖
role_sys_privs 角色擁有的系統權限視圖 role_tab_privs 角色擁有的對象權限 user_role _ privs 用戶擁有的角色 user_sys_privs 用戶擁有的權限的角色 user_tab_privs_mads 用戶分配的關于表對象權限 user_tab_privs_recd 用戶擁有的關于表對象權限 user_col_privs_mads 用戶分配的關于列的對象權限 user_col_privs_recd 用戶擁有的關于列的對象權限
3. 動態性能表是數據庫實例啟動后 創建的表。
動態性能表都數據 SYS 用戶; 用于存放數據庫在運行的過程中的性能相關的信息。
通過以下的視圖查看
select name from v_$fixed_table;
4. 動態性能視圖的使用;
只有 sys 用戶和擁有 DBA 角色的用戶可以訪問 。
在數據庫啟動到 NOMOUNT 的狀態時 可以訪問 v$ parameter v$sga v$session v$process v$instance v$version v$option
當數據庫啟動到 mount 的狀態時 我們還可以訪問 v$ log v$logfiel v$datafile v$controlfile v$ database v$thread v$datafile_header
當數據庫完全啟動后。可以訪問 v_$fixed_table
動態性能視圖的使用
v$access 包含當前被鎖定的數據庫對象及正在訪問他們的會話 v$archive 包含歸檔所需的重做日志文件中的信息 v$ archived_log 包含從控制文件中獲取的歸檔日志信息。 v$archive_processes 包含于一個實例相關的 arch 進程的狀態信息 v$ backup 包含聯機數據文件的備份狀態信息 v$backup_async_io 包括從控制文件中獲取的備份集的信息 v$ backup_corruption 包含從控制文件中獲取的有關數據文件備份中損壞的信息。 v$ backup_datafile 包含從控制文件中獲取的備份的數據文件和備份控制文件的信息 v$ backup_device 包含支持備份設備的信息 v$backup_piece 包含從控制文件中獲取的備份塊的信息 v$backup_redolog 包含從控制文件中獲取的關于備份集的歸檔日志的信息 v$backup_set 包含從控制文件中獲取的備份集的信息 v$bgprocess 包含數據庫后臺進程信息 v$ buffer_pool 包含當前實例中所有可用緩沖池的信息 v$ buffer_pool_statistics 包含當前實例所有可用緩沖池的統計信息 v$ cache 包含當前實例的 SGA 中的每一塊的頭部信息 v$context 包含當前對話的屬性信息。 v$controlfile 包含控制文件信息 v$ controlfile_record_section 包含控制文件記錄部分的信息 v$ copy_curruption 包含從控制問價中獲取的數據文件副本損壞的信息 v$database 包含從控制文件中獲取的數據庫信息 v$datafile 包含從控制文件中獲取的數據文件信息 v$datafile_copy 包括從控制文件中獲取的數據文件副本的信息 v$datafile_header 包含數據文件頭部信息 v$ db_object_cache 包含緩存在庫高速緩沖中的數據庫對象信息 v$db_pipes 包含當前數據庫中的管道信息 v$deleted_object 包含從控制文件中獲取的被刪除的歸檔日志,數據文件副本和備份塊的信息 v$ dispatcher_rate 包含調度進程速率統計量的信息 v$ dispatche 包含調度進程的信息 v$ DLM_ALL_LOCKS 包含當前所有鎖 v$ DLM_CONVERT_LOCAL 包含本地鎖轉換操作所消耗的時間的信息 v$ EVENT_NAME 包含等待時間的信息 v$ fixed_table 包含所有可用的動態性能視圖和動態性能表的信息 v$ sysstat 包含當前實例的性能統計信息 v$ instance 包含當前實例的詳細信息 v$sga 包含 SGA 區的主要組成部分的信息 v$ sgainfo 包含 SGA 區的詳細消息 v$ parameter 包含初始化參數信息 v$ sversion 包含 Oracle 版本信息 v$ option 包含已安裝的 Oraclette 組件的選項信息 v$session 包含當前所有會話信息 v$process 包含當前系統所有進程信息 v$ bgprocess 包含數據庫所有后臺進程信息 v$ database 包含當前數據庫信息 v$ controlfile 包含當前數據庫所有控制文件信息 v$ datafile 包含當前數據庫所有的數據文件的信息 v$ dbfile 包含所有數據文件的編號信息 v$ logfile 包含當前數據庫所有的重做日志文件信息 v$ log 包含當前數據庫重做日志文件信息 v$ log_history 包含重做日志文件切換情況的歷史信息 v$ thread 包含當前數據庫線程的信息 v$ lock 包含鎖的信息 v$ locked_object 包含被加鎖的數據庫對象信息 v$ rollname 包含當前處于聯機狀態的回退信息 v$ rollstat 包含當前所有的回退段的統計信息 v$ tablespace 包含當前數據庫所有表空間信息 v$ tempfile 包含當前數據庫多有的臨時數據文件的信息 ;
查看
查看當前用戶的缺省表空間 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 user_tables; 查看用戶下所有的表的列屬性 SQL>select * from USER_TAB_COLUMNS where table_name=:table_Name;顯示用戶信息 (所屬表空間)
select default_tablespace,temporary_tablespace
from dba_users where username='GAME';
1、用戶
查看當前用戶的缺省表空間 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 session_privs; 顯示指定用戶所具有的系統權限 SQL>select * from dba_sys_privs where grantee='GAME'; 顯示特權用戶 select * from v$pwfile_users; 顯示用戶信息 (所屬表空間) select default_tablespace,temporary_tablespace from dba_users where username='GAME'; 顯示用戶的 PROFILE select profile from dba_users where username='GAME';
2、表
查看用戶下所有的表 SQL>select * from user_tables; 查看名稱包含 log 字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0; 查看某表的創建時間 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); 查看某表的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); 查看放在 Oracle 的內存區里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
3、索引
查看索引個數和類別 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、序列號
查看序列號,last_number 是當前值 SQL>select * from user_sequences;
5、視圖
查看視圖的名稱 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');
6、同義詞
查看同義詞的名稱 SQL>select * from user_synonyms;
7、約束條件
查看某表的約束條件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_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;
8、存儲函數和過程
查看函數和過程的狀態 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');