Oracle数据字典

数据字典是数据库提供的“表”,是数据库中描述数据的数据,存储着数据库的信息(数据库中所有对象的名称和属性),可用于查看数据库的信息。创建或修改任何对象都会引起数据字典的更新,这样可反映那些更改。这些信息存储在由 Oracle DB 维护的基表中,不过,通过使用预定义视图(而不是直接读取表)可访问这些表。
  数据库管理员也可以通过查询数据字典得知数据库的运行状态,以及数据分布、用户权限等各种系统信息。

一、Oracle的数据字典视图分类

Oracle的数据字典视图分为两类:静态数据字典视图(static data dictionary views),动态性能视图(dynamic performance views)。
  静态数据字典视图的名称以DBA_、USER_、ALL_开头,分别表示整个数据库的系统信息、当前用户拥有的对象的信息、当前用户可以操作的对象的信息。静态数据字典视图的数据来源于system表空间。


  动态数据字典视图不是真正的表,其中的数据一般依赖于实例运行和数据库的状态,一般记录数据库的当前活动,如内存使用情况、I/O状况,当前会话情况。在实例运行和数据库使用过程中,动态视图的内容不断更新。管理员在会话管理、备份操作和性能调优时必须要使用它们。v$视图的数据都来自于SGA内存区,或者说来源于x%基表。

动态性能视图和静态性能视图的对比

二、常用数据字典视图



三、常用信息查询

查询Oracle的所有数字字典的名称:

SQL>select table_name from dictionary;

查看数据字典包含哪些字段可以用:

desc 数据字典名

查询Oracle数据库初始化参数:

  • 查询v$parameter
SQL>select name,value from v$parameter;
  • 执行show parameter命令
#查询所有初始化参数
SQL>show parameter
#在show parameter后指定参数名称或部分名称,会把包含此字符串的所有参数列出
SQL>show parameter [指定参数名]

四、查询内存使用情况

使用show sga可以查看内存各个模块的粗略配置情况:


SQL> show sga

Total System Global Area 1670221824 bytes
Fixed Size                  2176328 bytes
Variable Size            1174407864 bytes
Database Buffers          486539264 bytes
Redo Buffers                7098368 bytes

查询v$sgastat视图,可以得到更精细的shared_pool内存使用情况:

SQL>select * from v$sgastat;

另一种方式是使用v$memory_dynamic_components

SQL> col component for a40
SQL> col current_size for a40
SQL> select component,current_size from v$memory_dynamic_components;

COMPONENT                                CURRENT_SIZE
---------------------------------------- ------------
shared pool                                ##########
large pool                                 ##########
java pool                                  ##########
streams pool                               ##########
SGA Target                                 ##########
DEFAULT buffer cache                       ##########
KEEP buffer cache                          ##########
RECYCLE buffer cache                       ##########
DEFAULT 2K buffer cache                    ##########
DEFAULT 4K buffer cache                    ##########
DEFAULT 8K buffer cache                    ##########

COMPONENT                                CURRENT_SIZE
---------------------------------------- ------------
DEFAULT 16K buffer cache                   ##########
DEFAULT 32K buffer cache                   ##########
Shared IO Pool                             ##########
PGA Target                                 ##########
ASM Buffer Cache                           ##########

五、dual表

dual是数据字典中的一个特殊表,它只有一列DUMMY和一行数据,该行的列值是X。dual表常用在没有目标表的SELECT语句,用于计算表达式的值,并返回单个计算结果。
  例如,下面一组SELECT语句中使用dual表,分别返回当前用户名、系统当前日期时间,以及一个算术表达式计算结果。

SELECT user FROM dual;
SELECT sysdate FROM dual;
SELECT (2017+8) FROM dual;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Oracle通过数据字典来管理和展现数据库信息,数据字典通常储存数据库的元数据,是数据库的“数据库”。通常说的数据...
    z_strive阅读 607评论 0 0
  • 概念 在数据库创建的过程中创建 对于所有的用户(包括DBA) ,都是只读 只有Oracle系统才可以对数据字典进行...
    知向谁边阅读 351评论 0 0
  • 数据字典的组成——两类视图 静态数据字典:描述数据库的信息 这些数据经常是静止的。 动态数据字典:描述实例的信息 ...
    职场亮哥阅读 306评论 0 0
  • 什么是数据字典 Oracle通过数据字典来管理和展现数据库信息,数据字典通常储存数据库的元数据,是数据库的“数据库...
    赵阳_c149阅读 551评论 0 1
  • 摘要:一、Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表...
    暖夏未眠丶阅读 1,763评论 0 3