Oracle 資料字典
資料字典是整個oracle的核心, 記錄了資料庫的最基本的資訊。 資料字典包括資料字典基本表和資料字典檢視。
資料字典基本表由ORACLE_HOME\RDBMS\ADMIN\sal.bsq建立, 資料字典基本表大多以結尾, 屬於sys使用者, 存放在system表空間。
使用者不能手動去修改資料字典基本表。
E.g: select table_name from USER_table; 當前使用者所擁有的表名 select table_name from ALL_table; 當前使用者有權訪問的表名
4.1資料字典檢視總覽(通用概要檢視)
select * fromdict; 查詢全部資料字典檢視的名稱和解釋 select * from dict_columns; 檢視字典檢視中欄位的名稱和解釋
4.2 常用的靜態檢視
通用 | 檢視名 | 作用 |
---|---|---|
dba_ 上帝視角 all_ 能訪問到的 user_ 自己所擁有的 |
users | 描述使用者資訊,包含使用者名稱、賬戶狀態、預設表空間、建立日期等 |
tablespaces | 查看錶空間資訊 | |
tables | 查看錶資訊 | |
views | 檢視檢視資訊 | |
objects | 檢視所有物件的資訊,包含序列、過程與函式、觸發器、索引等 | |
errors | 檢視所擁有的物件中發生的錯誤 |
4.3資料字典常用SQL查詢語句
1. 查看錶空間、物理檔案、表空間大小、剩餘空間等
select a.* , (a.表空間大小-b.剩餘空間) 已用空間 , b.剩餘空間 from (select tablespace_name 表空間名稱 ,file_name 物理檔案路徑, round(bytes/(1024*1024),0) 表空間大小 from dba_data_files ) a left join (select tablespace_name,round(sum(bytes) / 1024 / 1024, 2) AS 剩餘空間 from dba_free_space group bytablespace_name) b on a.表空間名稱=b.tablespace_name;
表空間名稱 物理檔案路徑 表空間大小 已用空間 剩餘空間
-----------------------------------------------------------------------------------------------------------------------
TB1 /u01/app/oracle/oradata/orcl/testtbs01.dbf 10 1.06 8.94
SYSAUX /u01/app/oracle/oradata/orcl/sysaux01.dbf 1040 984.87 55.13
UNDOTBS1 /u01/app/oracle/oradata/orcl/undotbs01.dbf 295 23.25 271.75
USERS /u01/app/oracle/oradata/orcl/users01.dbf 363 204.62 158.38
SYSTEM /u01/app/oracle/oradata/orcl/system01.dbf 780 773.62 6.38
EXAMPLE /u01/app/oracle/oradata/orcl/example01.dbf 346 310.44 35.56
UNDOTBS2 /u01/app/oracle/oradata/orcl/undotbs02.dbf 10 2.25 7.75
2. 檢視控制檔案路徑
select name from v$controlfile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
3. 檢視日誌檔案路徑
select member from v$logfile;
4.檢視消耗資源最多的SQL
SELECT hash_value,executions,buffer_gets,disk_reads,parse_calls FROM V$SQLAREA WHERE buffer_gets > 10000000 OR disk_reads > 1000000 ORDER BY buffer_gets + 100 * disk_reads DESC;
5.檢視還未提交的事務
select * from v$locked_object; select * from v$transaction;
6. 查詢資料庫伺服器的主機名、例項名、資料庫系統版本;
select host_name,instance_name,version from v$instance; HOST_NAME INSTANCE_NAME VERSION ----------------------- ------------------------ ----------------- test1 orcl 11.2.0.4.0