Oracle数据字典

  • 一、概念
    • 1、组成部分
    • 2、详解
      • (1)、内部 RDBMS(X$)表
      • (2)、数据字典表
      • (3)、动态性能(V$)视图
      • (4)、数据字典视图
  • 二、查询
    • (1)内部表
    • (2)普通表
  • 三、收集统计信息
    • 1、收集数据字典的统计信息
    • 2、收集普通表的统计信息

数据字典(Data Dictionary)是 Oracle 数据库的一个重要组成部分, 是元数据(Metadata)的存储地点。

数据字典包括以下内容:
u 所有数据库 Schema 对象的定义(表、视图、索引、聚簇、同义词、序列、过程、
函数、包、触发器等等)
u 数据库的空间分配和使用情况
u 字段的缺省值
u 完整性约束信息
u Oracle 用户名称、角色、权限等信息
u 审计信息
u 其他数据库信息

一、概念

1、组成部分

通常所说的数据字典由四部分组成:
1、内部 RDBMS(X$)表
2、数据字典表
3、动态性能(V$)视图
4、数据字典视图

2、详解

(1)、内部 RDBMS(X$)表

X$表的本质上是一系列的 C 结构体, 是 Oracle 数据库的运行基础,在数据库启动时由Oracle 应用程序动态创建

(2)、数据字典表

数据字典表(Data dictionary table) 用以存储表、索引、约束以及其他数据库结构的信息
这些对象通常以“$”结尾(例如 TAB$、 OBJ$、 TS$等),在创建数据库的时候通过运行 sql.bsq脚本来创建

(3)、动态性能(V$)视图

动态性能(V$)视图(Dynamic Performance View) 记录了数据库运行时信息和统计数据,
大部分动态性能视图被实时更新以反映数据库当前状态。

(4)、数据字典视图

静态数据字典视图:
由于 X$表和数据字典表通常不能直接访问, Oracle 创建了静态数据字典视图来供用户
对于数据字典信息的访问,由于这些信息通常相对稳定、不能直接修改,所以又被称为静态数
据 字 典 视 图 。 数 据 字 典 视 图 在 创 建 数 据 库 时 由 catalog.sql 脚 本 ( 该 脚 本 位 于
$ORACLE_HOME/rdbms/admin/目录下)创建。

常用数据字典视图举例

  1. DICT / DICTIONARY
  2. DICT_COLUMNS
  3. OBJ$/DBA_OBJECTS/OBJ
  4. *_SOURCE 视图

二、查询

(1)内部表

查看所有的基表
V$FIXED_TABLE

–查看基表的SQL创建语句
V$FIXED_VIEW_DEFINITION
eg :

SELECT view_definition FROM v$fixed_view_definition  WHERE view_name='GV$SQL';

—或可通过set autotrace on 执行计划看到此数据字典表相关的基表。

(2)普通表

查看普通表、视图、过程、触发器等的SQL创建语句:
DBMS_METADATA.GET_DDL

eg:

set long 900000
select dbms_metadata.get_ddl('TABLE','TABLE1','SCOTT') from dual;

三、收集统计信息

1、收集数据字典的统计信息

DBMS_STATS Procedures for Gathering Optimizer Statistics:

Gathering Statistics for Fixed Objects
Fixed objects are dynamic performance tables and their indexes. These objects record current database activity.
Unlike other database tables, the database does not automatically use dynamic statistics for SQL statement referencing X$ tables when optimizer statistics are missing. Instead, the optimizer uses predefined default values. These defaults may not be representative and could potentially lead to a suboptimal execution plan. Thus, it is important to keep fixed object statistics current.
Oracle Database automatically gathers fixed object statistics as part of automated statistics gathering if they have not been previously collected. You can also manually collect statistics on fixed objects by calling DBMS_STATS.GATHER_FIXED_OBJECTS_STATS. Oracle recommends that you gather statistics when the database has representative activity.

总结:
----Gathers statistics of fixed objects

exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

—Gathers statistics for dictionary schemas ‘SYS’, ‘SYSTEM’ and schemas of RDBMS components

exec DBMS_STATS.GATHER_DICTIONARY_STATS;

----收集其它内部表,如:

exec dbms_stats.gather_table_stats('SYS','X$KSUSE');
exec dbms_stats.gather_table_stats('SYS','X$KSQRS');

又如:

EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS','X$KCCBP');
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS','X$KCCBS');
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS','X$KCCRSR');
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS','X$KSFQP');
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYS','X$KRBMRST');

2、收集普通表的统计信息

EXEC DBMS_STATS.GATHER_TABLE_STATS('USERNAME','TABLE_NAME');

============================================================
引自:
参考盖总的《深入浅出Oracle》第四章

【Oracle】数据字典初步理解相关推荐

  1. 《Oracle数据库管理与维护实战》——2.11 Oracle数据字典

    本节书摘来自异步社区出版社<Oracle数据库管理与维护实战>一书中的第2章,第2.11节,作者: 何伟娜 , 常建功,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  2. Oracle数据字典中查看约束信息/约束相关笔记

    1.我们创建的对象可以从"USER_"开通的视图中查看.如果在模式中创建了10张表,那么从USER_TABLES中查询将返回10行,每一行是关于一张表的特性信息 USER_TABL ...

  3. Oracle数据字典全解 (1)

    Oracle数据字典全解 2011-08-18 20:59:41|  分类: Oracle |  标签:oracle   |字号 订阅 一.概念: 1.数据字典(data dictionary)是 O ...

  4. Oracle数据字典视图之DICT_COLUMNS(提纲掣领的一篇,该视图是一个工具对深入了解数据字典)

    [VIEW]Oracle数据字典视图之DICT_COLUMNS 上一篇 /下一篇  2010-10-13 22:41:31/ 个人分类:Oracle 查看( 489 ) / 评论( 0 ) / 评分( ...

  5. oracle hive 数据类型,查询oracle数据字典,并对应出hive的数据类型

    SQL开始 select t2.owner||'.'||t2.TABLE_NAME 源表名, 'dl_{0}_seq.'||'tt_{1}_'||lower(t2.table_name) hive表名 ...

  6. Oracle数据字典

    Oracle数据字典 前三条比较常用,可以列出数据库中有哪些表,查找某张表的所有字段,列出所有的视图. 1. USER_TABLEs(=TABS) 用户的所有表的信息. 2.USER_TAB_COLU ...

  7. oracle查看字典结构体,Oracle数据字典的实操

    以下的文章主要是介绍Oracle sqlplus命令中用户有效地利用Oracle数据字典的方案,我们大家都知道Oracle数据字典作为数据库的重要的组成部分之一,是随着数据库的产生而产生, 随着数据库 ...

  8. 如何让人大致理解RxJava思想:第一节 初步理解RxJava

    如何让人大致理解RxJava思想:第一节 初步理解RxJava 首先,我们需要明确,一个人不可能一口气吃成一个胖子,你不可能仅仅花5分钟看完我这篇文章,然后一拍桌子,大叫一声,我知道了,然后赢取白富美 ...

  9. oracle数据字典表与视图

    oracle数据字典表与视图 数据字典是数据的数据,也就是元数据.描述了数据库的物理与逻辑存储与相应的信息.模式中对象的定义信息,安全信息,完整性约束信息,和部分的性能监控信息等.数据字典表 与视图存 ...

最新文章

  1. php内置常用函数是哪些,PHP常用函数有哪些
  2. Windows自带的杀进程工具
  3. PXE BOOT INSTALL WINXP
  4. 今日头条上传图片时设置封面图报像素低的原因是什么
  5. sql server中的go
  6. STM32学习之路-SysTick的应用(时间延迟)
  7. 什么事数据科学_如果您想进入数据科学,则必须知道的7件事
  8. 东明县计算机学校,东明县职业中等专业学校2021年招生信息
  9. 基于Matlab的LDPC码性能研究毕业设计(含源文件)
  10. 总线的集中式仲裁(讲述计时器定时查询方式,独立请求方式,链式查询方式的优缺点)
  11. jquery 里面对数组操作-去重
  12. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能
  13. (转)淘淘商城系列——商品搜索功能Service实现
  14. stl Vecotr中遍历方法
  15. python log
  16. 使用 sroll-snap-type 优化滚动
  17. [Android开发]zip文件压缩解压缩
  18. JS 阻止浮层弹窗下滚动
  19. Learn1:在Power Apps平台创建第一个 Canvas App
  20. 网站安全防护措施有哪些

热门文章

  1. 2.89亿元寻求股权转让“接盘侠”!紫光存储风波未平,紫光德瑞风云再起
  2. 轻松学Python数据分析3-数据处理
  3. 一位父亲给儿女的九条人生忠告(看看吧,受用一生,适用于任何人)
  4. video JS实现多视频循环播放
  5. 世界是由什么组成的java_世界是由什么组成的?
  6. 集齐支付宝福卡秘籍来了!
  7. 关于MPEG-4的Comment读取
  8. HEX和BIN文件的区别
  9. CAM350导入allegro输出的.ROU文件问题
  10. 第一冲刺阶段——站立会议第六天4月23日