首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

深入解析 Oracle 数据字典三层架构与内部视图依赖关系

     編輯:Oracle 資料庫基礎

数据字典三大层次

  1. X$ 固定表:实例启动时由 Oracle 进程在内存中动态创建,存储最底层内核指标(如 X$KSPPI 参数定义),仅 SYSDBA 可访问,不可授权。
  2. GV$ / V$ 动态性能视图:基于 X$ 表构建,GV$ 为全局视图(含 INST_ID),V$ 为单实例视图(附加 WHERE INST_ID = USERENV('INSTANCE'))。
  3. V_$ / GV_$ 视图与公共同义词:CATALOG.SQL 建立 V_$FIXED_TABLE 选自 V$FIXED_TABLE,再建公共同义词 V$FIXED_TABLE 指向 V_$FIXED_TABLE。实际访问的 V$ 皆为同义词链终端。

视图依赖链追踪示例

-- 1. V$FIXED_TABLE 定义
SELECT VIEW_DEFINITION FROM V$FIXED_VIEW_DEFINITION WHERE VIEW_NAME = 'V$FIXED_TABLE';
-- 结果:SELECT ... FROM GV$FIXED_TABLE WHERE INST_ID = USERENV('INSTANCE')

-- 2. GV$FIXED_TABLE 定义
SELECT VIEW_DEFINITION FROM V$FIXED_VIEW_DEFINITION WHERE VIEW_NAME = 'GV$FIXED_TABLE';
-- 结果:SELECT INST_ID, KQFTANM, ... FROM X$KQFTA UNION ALL ...

-- 3. V$PARAMETER 依赖链
V$PARAMETER → GV$PARAMETER → X$KSPPI, X$KSPPCV

BOOTSTRAP$ 与数据库启动引导

BOOTSTRAP$ 记录数据库创建时的核心 DDL(如 CREATE TABLE SEG$、CREATE CLUSTER C_TS# 等),实例启动首步即在内存建立 BOOTSTRAP$,再按其中 SQL 文本顺序创建核心数据字典对象,实现类似操作系统引导的自我初始化过程。

统计数字(典型 10g/11g 环境)

  • X$ 对象:~394 个
  • GV$ 视图:~259 个
  • V$ 视图:~259 个
  • V$FIXED_TABLE 共记录 ~912 个对象

隐含参数(_ 开头)

V$PARAMETER 过滤掉 _ 开头的参数;完整参数列表含隐含参数需查 X$KSPPI / X$KSPPCV。隐含参数功能强大但修改风险高,非资深 DBA 勿动。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved