暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
04.Dictionary
443
34页
2次
2019-09-19
10墨值下载
4
4
数据字典
数据字典
Oracle 通过数据字典来管理和展现数据库信息,数据字典通常存储数据库的元数据,是数
据库的“数据库”其中存储的信息至关重要。正确理解这部分内容有助于提高大家 Oracle
数据库的认知,加强学习能力。本章 Oracle 的数据字典进行探讨。
4.1 数据字典概述
数据字典Data Dictionary)是 Oracle 数据库的一个重要组成部分,是元数据Metadata
的存储地点。Oracle RDBMS 使用数据字典记录和管理对象信息和安全信息等,用户和数据库
系统管理员可以通过数据字典来获取数据库相关信息。
数据字典包括以下内容:
! 所有数据库 Schema 对象的定义(表、视图、索引、聚簇、同义词、序列、过程、
函数、包、触发器等等)
! 数据库的空间分配和使用情况
! 字段的缺省值
! 完整性约束信息
! Oracle 用户名称、角色、权限等信息
! 审计信息
! 其他数据库信息
总之,数据字典是数据库核心,通过数据字典,Oracle 数据库基本上可以实现自解释。
一般来说,数据字典是只读的,通常不建议对任何数据字典表中的任何信息进行手工更
新或改动,对于数据字典的修改很容易就会导致数据库紊乱,造成无法恢复的后果,而
Oracle 公司不对此类操作带来的后果负责。
通常所说的数据字典由四部分组成:内部 RDBMSX $)表 、数 、动(V$)
视图和数据字典视图。作为数据字典的辅助管理,还可以为对象创建同义词。
4.2 内部 RDBMSX$
X$表是 Oracle 数据库的核心部分,这些表用于跟踪内部数据库信息,维持数据库的正常
运行。X$表是加密命名的,而且 Oracle 不作文档说明,这部分知识是 Oracle 公司的技术机密,
Oracle 通过这些 X$建立起其他大量视图提供用户查询管理数据库之用。但是由于 X$表记录了
大量有用的信息,所以也不停的被全球 DBA 不懈的探索着,最为人所熟知的有:X$BH
X$KSMSP 等。
书名书名书名书名书名书名书名书名书名书名书名书名书名书名
·2·
X$的本质上是一系列的 C 结构体, Oracle 数据库的运行基础,在数据库启动时由
Oracle 应用程序动态创建。这部分表对数据库来说至关重要,所以 Oracle 不允许 SYSDBA
外的用户直接访问,显示授权不被允许。
如果显式授权会收到如下错误:
SQL> grant select on x$ksppi to eygle;
grant select on x$ksppi to eygle
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
Oracle 的解释是:
ORA-02030 can only select from fixed tables/views
Cause: An attempt is being made to perform an operation other than a retrieval from a fixed
table/view.
Action: You may only select rows from fixed tables/views.
一句话,这些对象你最好只是查询。
发现、观察、研究 X$表的一个好办法是借用 Oracle AUTOTRACE 功能,当我们查询
一些常用视图的时候,我们可以通过 AUTOTRACE 功能发现这些 View 的底层表。
以下是 Oracle10gR2 中的一个示例
SQL> set autotrace trace explain
SQL> select * from v$parameter;
Execution Plan
----------------------------------------------------------
Plan hash value: 1128103955
------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 926 | 1 (100)| 00:00:01 |
|* 1 | HASH JOIN | | 1 | 926 | 1 (100)| 00:00:01 |
|* 2 | FIXED TABLE FULL| X$KSPPI | 1 | 249 | 0 (0)| 00:00:01 |
| 3 | FIXED TABLE FULL| X$KSPPCV | 100 | 67700 | 0 (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("X"."INDX"="Y"."INDX")
filter(TRANSLATE("KSPPINM",'_','#') NOT LIKE '#%' OR
"KSPPSTDF"='FALSE' OR BITAND("KSPPSTVF",5)>0)
2 - filter("X"."INST_ID"=USERENV('INSTANCE') AND
TRANSLATE("KSPPINM",'_','#') NOT LIKE '##%')
这些研究和探索是极有趣味的,如果你能就此深入下去,一定能够时常发现意外的收获。
of 34
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜