Oracle数据库基础与应用教程
上QQ阅读APP看书,第一时间看更新

4.6 动态性能视图

4.6.1 动态性能视图简介

动态性能视图是指将内存里的数据或控制文件里的数据以表的形式展现出来,动态性能视图的主要用途是获取有关数据库的信息以及进行性能监视和调试,这样能够更好地管理数据库的性能。动态性能视图实际上都是虚表,并不是真正的表。只要数据库还在运行,就会不断更新动态性能视图。一旦数据库关闭或崩溃,动态性能视图里的数据就会全部丢失,下次重新启动时则会重新产生。

动态性能视图提供有关内部磁盘结构和内存结构的数据。动态性能视图有时被称为固定视图,可以从动态性能视图中查询,但永远无法更新或修改它们。

因为动态性能视图并不是真正的表,数据是依赖于数据库和实例的状态。如当数据库启动但没有装载时,可以查询V$INSTANCE和V$BGPROCESS,但是不能查询V$DATAFILE,直到数据库已装载才可以。

所有的动态性能视图的所有者都是sys。V$FIXED_TABLE动态性能视图里存储了所有的动态性能视图的名称,动态性能视图的名称都是以V_$和GV_$开头的,Oracle数据库为动态性能视图创建公用同义词。公用同义词的名称都以V$和GV$开头,这样可以使用户方便地访问动态性能视图。

动态性能视图包含以下信息。

➢ 系统和会话参数。

➢ 内存使用和分配。

➢ 文件状态(包括RMAN备份文件)。

➢ 作业和任务进度。

➢ SQL执行。

➢ 统计数据和指标。

注意

必须运行catalog.sql脚本文件创建动态性能视图和动态性能的同义词。只有用户sys或拥有SYSDBA系统权限的用户可以访问动态性能视图。当使用DBCA工具创建数据库时,Oracle会自动创建动态性能视图。

4.6.2 动态性能视图分类

动态性能视图包含V_$动态性能视图和GV_$动态性能视图两类。

1. V_$动态性能视图

V_$动态性能视图是当前实例的动态性能视图,这些视图的公用同义词的前缀是V$。数据库管理员和其他用户只能访问V$对象,而不是V_$对象。一个实例启动后,从内存中读取V$视图进行访问。从磁盘读取数据的动态性能视图要求数据库处于装载(MOUNT)状态,有的要求数据库处于打开(OPEN)状态。

2. GV_$动态性能视图

GV_$动态性能视图是分布式环境下所有实例的动态性能视图,这些视图的公用同义词的前缀是GV$。对于几乎每一个V_$动态性能视图,Oracle有一个对应的GV_$动态性能视图。在RAC环境中,查询GV_$视图,从所有可用的实例中查询V_$视图的信息。

在Oracle数据库中,常用的动态性能视图如表4-4所示。

表4-4 常用动态性能视图