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 * from dict; 查询全部数据字典视图的名称和解释 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 by tablespace_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