標籤:空閑 lock 會話 包括 rar ast oracle order ssi
Oracle
資料字典
Oracle資料字典是存放有關資料的地方,它的用途是用來描述資料。資料字典可以分為靜態和動態。
待用資料字典
一、待用資料字典:使用者訪問資料字典不會發生變化,主要是由表和視圖組成,資料字典中的表是不能直接被訪問的,但是我們可以訪問資料字典中的視圖。待用資料字典分為三類,它們的首碼分別是user_*、 all_*、 dba_*。
- user_*:該視圖儲存了關於目前使用者下所有對象的資訊
- all_* :該視圖儲存了目前使用者能夠訪問的對象的資訊。(與user_*相比,all_* 並不需要擁有該對象,只需要具有訪問該對象的許可權即可)
- dba_*:該視圖儲存了資料庫中所有對象的資訊。(前提是目前使用者具有訪問這些資料庫的許可權,一般來說必須具有管理員權限
以上三類處理存取範圍不同之外(許可權不同),其他均具有一致性,只有SYS和擁有DBA系統許可權的使用者可以看到所有的視圖。沒有DBA許可權的使用者只能看到user_*和all_*視圖。如果沒有被授予相關的SELECT許可權的話,他們是不能看到 dba_*視圖的。
select * from dictionary;
dba_data_file:記錄的是物理資料檔案的資訊,這些資訊包括資料檔案的名稱、大小、所屬資料表空間等資訊,資料檔案的基本資料
dba_tab_grant :資料庫中對象所授權的許可權
dba_tab_privs :查看資料庫中使用者的許可權
dba_sys_privs:查看所用使用者以及角色的特權
dba_tab_quotas:查看所有使用者資料表空間限額
dba_ts_quotas :所有使用者資料表空間限額
dba_uers:查看所有使用者資訊
dba_view:查看所有視圖資訊
dba_roles:顯示所有角色資訊
dba_tablespaces: 查詢關於資料表空間的一些基本的資料字典
dba_free_tablespaces:顯示資料表空間的空閑空間
dba_temp_files:臨時檔案的基本資料
dba_tables; dba_tab_columns: DBA 使用者的所有的表的基本資料
dba_synonyms:DBA 使用者的所有的同義字的基本資料
dba_sequences:DBA 使用者的所有的序列的資訊
dba_constraints:DBA 使用者的所有的約束的資訊
dba_indexes:DBA 使用者的所有的索引的基本資料
dba_ind_columns :所有表及簇上壓縮索引的列
dba_triggers:DBA 使用者的所有的觸發器的基本資料
dba_source:DBA 使用者的所有的預存程序的基本資料
dba_segments:DBA 使用者的所有的段的基本資料
dba_extents :DBA 使用者的所有的區的基本資料
dba_objects:DBA 使用者的所有的對象的基本資料
cat:目前使用者可以訪問的所有的基表
system.tab:目前使用者可以訪問的所有的基表,視圖,同義字
dict:構成資料字典的所有的表資訊
role_tab_privs:所有角色被授予的表對象的特權
user_sys_privs:查看自己的許可權,查看目前使用者的系統許可權和表級許可權
user_role_privs:顯示使用者角色,查看目前使用者的角色
user_tab_privs:該視圖主要是儲存目前使用者下對所有表的許可權資訊。
user_users:主要描述目前使用者的資訊,查看目前使用者的預設資料表空間,主要包括目前使用者名、帳戶id、帳戶狀態、資料表空間名、建立時間等,所有使用者相關資料
user_tables:查詢該使用者擁有哪些表,主要描述目前使用者擁有的所有表的資訊,主要包括表名、資料表空間名、簇名等。通過此視圖可以清楚瞭解目前使用者可以操作的表有哪些。
user_objects:主要描述目前使用者擁有的所有對象的資訊,對象包括表、視圖、預存程序、觸發器、包、索引、序列等。該視圖比user_tables視圖更加全面
user_indexes:查詢該使用者擁有哪些索引
user_views:查詢該使用者擁有哪些視圖
user_objects:查詢該使用者擁有哪些資料庫物件,對象包括表、視圖、預存程序、觸發器、包、索引、序列、JAVA檔案等
動態資料字典
二、動態資料字典 Oracle包含了一些潛在的由系統管理員如SYS維護的表和視圖,由於當資料庫啟動並執行時候它們會不斷進行更新,所以稱它們為動態資料字典(或者是動態效能檢視)。這些視圖提供了關於記憶體和磁碟的運行情況,所以我們只能對其進行唯讀訪問而不能修改它們。Oracle中這些動態效能檢視都是以v$開頭的視圖
v$_:當前執行個體的動態視圖,包含系統管理和系統最佳化等所使用的視圖
gv_:分布式環境下所有執行個體的動態視圖,包括系統管理和系統最佳化使用的視圖
v$access :該視圖顯示資料庫中鎖定的資料庫物件以及訪問這些對象的會話對象(session對象)。
v$session:該視圖列出當前會話的詳細資料。
v$active_instance:該視圖主要描述當前資料庫下的活動的執行個體的資訊。
v$context:該視圖列出當前會話的屬性資訊。比如命名空間、屬性值等。
v$instance:資料庫執行個體的基本資料。
v$datafile;:資料檔案的基本資料
v$controlfile; 控制檔案的基本資料
v$logfile:記錄檔的基本資料, 有關執行個體重設日誌組檔案名稱及其位置的資訊
v$log 從控制檔案中提取有關重做日誌組的資訊
v$archived_dest 記錄歸檔記錄檔的路徑資訊
v$database:資料庫的基本資料
show parameter log_archive_dest:記錄檔參數資訊
v$parameter:記錄初始化參數檔案中所有項的值
v$system_parameter 顯示執行個體當前有效參數資訊
v$process 當前進程的資訊
v$bgprocess: 後台進程資訊
v$archived_log:歸檔狀態記錄檔的一些基本資料
v$sga: 顯示執行個體的SGA區大小
v$db_object_cache; v$sql:關於記憶體結構的一些資訊
v$sgastat: 統計SGA使用方式的資訊
v$lock :通過訪問資料庫會話,設定對象鎖的所有資訊
v$sql :記錄SQL語句的詳細資料
v$sqltext: 記錄SQL語句的語句資訊
資料字典使用執行個體:
- 顯示使用者資訊(所屬資料表空間) :select default_tablespace,temporary_tablespace from dba_users where username=‘GAME‘;
- 查看目前使用者的預設資料表空間 select username,default_tablespace from user_users;
- 查看目前使用者的角色 select * from user_role_privs;
- 查看目前使用者的系統許可權和表級許可權 select * from user_sys_privs; select * from user_tab_privs;
- 顯示當前會話所具有的許可權 select * from session_privs;
- 顯示指定使用者所具有的系統許可權 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‘;
- 查看使用者下所有的表 select * from user_tables;
- 查看名稱包含log字元的表 select object_name,object_id from user_objects where instr(object_name,‘LOG‘)>0;
- 查看某表的建立時間 select object_name,created from user_objects where object_name=upper(‘&table_name‘);
- 查看某表的大小 select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper(‘&table_name‘);
- 查看放在Oracle的記憶體區裡的表 select table_name,cache from user_tables where instr(cache,‘Y‘)>0;
- 查看索引個數和類別 select index_name,index_type,table_name from user_indexes order by table_name;
- 查看索引被索引的欄位 select * from user_ind_columns where index_name=upper(‘&index_name‘);
- 查看索引的大小 select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper(‘&index_name‘);
- 查看序號,last_number是當前值 select * from user_sequences;
- 查看視圖的名稱 select view_name from user_views;
- 查看建立視圖的select語句 set view_name,text_length from user_views; set long 2000; 說明:可以根據視圖的text_length值設定set long 的大小 select text from user_views where view_name=upper(‘&view_name‘);
- 查看同義字的名稱 select * from user_synonyms;
- 查看某表的約束條件 select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name‘);
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;
- 查看函數和過程的狀態 select object_name,status from user_objects where object_type=‘FUNCTION‘; select object_name,status from user_objects where object_type=‘PROCEDURE‘;
- 查看函數和過程的原始碼 select text from all_source where owner=user and name=upper(‘&plsql_name‘);
ORACLE資料字典