内置数据库对象
使用数据库创建的其他对象:
数据字典
性能表
PL/SQL包
数据库事件触发器
数据字典(Data Dictionary)
- 每个Oracle数据库的中心
- 描述数据库及其对象
- 包含只读表和视图
- 存储在SYSTEM表空间中
- 属于用户SYS
- 由Oracle服务器维护
- 通过SELECT访问
Base Tables & DD Views
数据字典包含两个部分:
Base Tables(基表)
- 存储数据库的描述
- 使用CREATE DATABASE创建
Data dictionary views(数据字典视图)
- 用于简化基表信息
- 通过公共同义词访问
- 用catalog.sql脚本创建
创建DD Views
catalog.sql:创建常用的数据字典视图和同义词
catproc.sql:运行服务器端PL/SQL所需的脚本
数据字典内容
数据字典提供以下信息:
- 逻辑和物理数据库结构
- 对象的定义和空间分配
- 完整性约束
- 用户
- 角色
- 特权
- 审计
如何使用DD
主要用途:
Oracle服务器使用它来查找有关的信息
- 用户
- 模式对象
- 存储结构
Oracle服务器在执行DDL语句时修改它。
用户和DBA以只读的方式查询引用数据库信息。
DD视图类别
三组静态视图
以其范围著称的:
- DBA:所有模式中的内容
- ALL:用户可以访问的内容
- USER:用户模式中的内容
DD例子
总体概述:DICTIONARY,DICT_COLUMNS
模式对象:DBA_TABLES,DBA_INDEXES,DBA_TAB_COLUMNS,DBA_CONSTRAINTS
空间分配:DBA_SEGMENTS,DBA_EXTENTS
数据库结构:DBA_TABLESPACES,DBA_DATA_FILES
动态性能表(Dynamic Performance Tables)
- 虚拟表
- 记录当前数据库活动
- 在数据库运行时不断更新
- 从内存和控制文件访问信息
- 用于监视和调优数据库
- 归属SYS用户
- 以V$开始的Synonyms
- 列在V$FIXED表中
常见DP
- V$CONTROLFILE:提供了有关数据库控制文件的信息,包括控制文件的名称和位置。
- V$DATABASE:提供了数据库的一般信息,例如数据库名称、状态以及创建时间。
- V$DATAFILE:提供了数据库的一般信息,例如数据库名称、状态以及创建时间。
- V$INSTANCE:提供了关于数据库实例的信息,例如实例名称、启动时间、数据库状态等。
- V$PARAMETER:提供了数据库中的参数设置信息,包括参数名称、当前值、默认值等。
- V$SESSION:提供了数据库会话的信息,包括会话ID、用户名、客户端IP地址、会话状态等。
- V$SGA:提供了SGA(共享内存区)的信息,包括SGA大小、SGA命中率、缓冲池命中率等。
- $SPPARAMETER:提供了SP文件(服务器参数文件)中的参数设置信息。
- V$TABLESPACE:提供了表空间的信息,包括表空间名称、表空间大小、表空间使用情况等。
- V$THREAD:提供了数据库中的线程信息,包括线程ID、线程名称等。
- V$VERSION:提供了数据库软件版本信息,包括Oracle版本号、主版本号、次版本号等。
Admin脚本命名
Convention:描述
cat*.sql:目录和数据字典信息
dbms*.sql:数据库包规格
prvt*.plb:封装的数据库包代码
utl*.sql:用于数据库实用程序的视图和表