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