Oracle 10 体系结构

来源:互联网 发布:行知中学校服 编辑:程序博客网 时间:2024/05/02 00:29
完整的oracle数据库包括数据库db,数据库管理系统dbms两大部分,这两个部分分别对应的时存储网络结构和软件结构。
oracle网络结构:单层结构(服务器,哑终端)特点是使用基于字符的非图形终端设备直接串行地连接到oracle数据库。所有的智能和处理都发生再大型机上。单层结构的配置和管理较方便,也不存在多操作系统的复杂性问题。单层结构在可缩放性和灵活性方面有些限制,大型机的性能决定了整个系统的性能。
双层结构:特点是客户机具有图形用户界面,易于理解,学习,操作,客户机具有只能,可进行处理,减轻了对服务器性能的需求。(c/s结构,服务器,只能客户机)
n层结构:它在客户机和数据库服务器之间引进了中间件,如应用服务器或web服务器。
工作原理,包括数据库系统处理过程和体系结构两方面
建立连接,在连接的基础上,为用户建立会话session,并为该会话创建一个pga区(程序全局区)以存储与该会话相关的信息。在同一个连接中,不同的用户有不同的会话。启动服务进程,由该服务进程负责执行该会话的各项任务
总体结构:
进程结构:包括前台进程,后台进程。前台进程是指服务进程和用户进程,前台进程是根据实际需要而运行的,并在需要结束后立刻结束,后台进程是指在oracle数据库启动后,自动启动的几个操作系统进程。
存储结构:包括控制文件,数据文件,日志文件等操作系统文件。
oracle数据库的存储结构分为逻辑存储结构和物理存储结构,这两种结构即相互独立又相互联系
逻辑存储结构主要描述oracle数据库的内部存储结构,即从技术概念上描述在oracle数据库中如何组织,管理数据。因此,逻辑存储结构是和操作系统平台无关的,是由oracle数据库创建和管理的。
物理存储结构主要描述oracle数据库的外部存储结构,即在操作系统中如何组织,管理数据,因此物理存储结构是和操作系统平台有关的,物理存储结构是逻辑存储机构在物理上的,可见的,可操作的,具体的实现形式。物理存储结构对应的操作系统文件存储在磁盘上。
从物理上看,数据库是由控制文件,数据文件,重做日志文件等操作系统文件组成;从逻辑上看,数据库是由系统表空间,用户表空间等表空间组成的。表空间是最大的逻辑单位,块是最小的逻辑单位。逻辑存储结构中的块最后对应到操作系统中的块。
逻辑存储结构:
逻辑存储结构包括表空间,段,区,数据块。
表空间是最大的逻辑单位,一个数据库可以有多个表空间,一个表空间可以包含多个数据文件。任何方案对象都被存储在表空间的数据文件中,虽然不能存储在多个表空间,但可以存储在多个数据文件中。
分为系统表空间和非系统表空间(sysem,sysaux,)
段:用户存储表空间中某一种特定的具有独立存储结构的对象的所有数据,它由一个或多个区组成。按照段中所存储的数据的特征和用途的不同可以分为表段(数据段),索引段,临时段,回滚段。
数据段:存储表中所有数据。当某个用户创建表时,就会在该用户的默认表空间中为该表分配一个与表名相同的数据段,以便将来存储该表的所有数据,如果创建的是分区表,则为每个分区分配一个数据段。显然一个表空间中创建了几个表,该表空间中就由几个数据段。数据段随着数据的增加和逐渐增大。段的增大过程是通过增加区的个数而实现的。每次增加一个区,每个区的大小是块的整数倍。
查询所登陆用户的数据断存储在哪个表空间,由多大,有几个区
select segment_name,tablespace_namel,bytes,blocks from user_extents;
索引段:存储索引的所有数据。当用户用create index创建索引,或定义约束而自动创建索引时,就会在该用户的默认表空间为该索引分配一个与索引名相同的索引段,以便将来存储该索引的所有数据,如果创建的时分区索引,则为每个分区索引分配一个索引段。
查询登陆用户的索引信息
select index_name,table_owner,table_name,tablespace_name from user_indexes;
临时段:存储排序操作所产生的临时数据,当用户使用order by预计进行排序或汇总时,在该用户的临时表空间中自动创建一个临时段,排序结束,临时段自动消除。由于在创建临死段时存在空间的分配,回收,在分配的特点,容易造成不连续的磁盘碎片,因此,为了优化系统性能,oracle建议使用专用的临时表空间作为用户的临时表空间。
回滚段:存储数据修改之前的位置和值。利用这些信息可以回退提交的事务,维护数据库的读一致性,并能从例程的崩溃中进行恢复。回滚段的原理与实现时一项十分复杂的技术,已经面临淘汰,自9i开始,增加了undo表空间,并增加了自动撤销管理功能来代替回滚段的功能。
查询是否使用了自动撤销管理功能
select value from v$parameter where name='undo_management';
如果使用回退段功能,需要先将undo_management参数设置为manual,并重新启动数据库。
区extent:是物理上连续存放的块构成的。区是oracle存储分配的最小单位,由一个或多个块组成,由一个或多个区组成段。当在数据库中创建带有实际存储结构的方案对象时,oracle将为该方案对象分配若干个区,以便组成一个对应的段来为该方案对象提供初始的存储空间。当段中已分配的区都写满后,oracle就为该段分配一个新区,以便容纳更多的数据。
块block:是最小的数据管理单位,也是执行输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位时操作系统块。块的大小时操作系统块大小的整数倍。
物理存储结构:控制文件,数据文件,重做日志文件,次要文件(密码文件,参数文件,归档重做日志文件)。
控制文件:控制文件一般是很小的文件,通常是数据库中最小的文件,大小一般在1M到5M之间,为二进制文件,但它是数据库中的关键性文件,它对数据库的成功启动和正常运行都是至关重要的。因为它存储了在其他地方无法获得的关键信息。如:数据库名称,数据文件和重做日志文件的名称,位置和大小,发生磁盘故障或用户错误时,用于恢复数据库的信息。
在以下情况下,需要备份控制文件:1,增加删除或重命名数据文件。2,增加或删除表空间,或改变了表空间的读写状态。3增加或删除日志组或成员。
如果一个控制文件所在的磁盘损坏,相关联的实例将关闭。待磁盘故障排除后,损坏的控制文件可以启动这个控制文件的备份启动实例。
每个数据库必须而且只相应有一个控制文件。它存储了数据库的结构。
在数据库运行的过程中。每当出现数据库检查点或修改数据库结构之后,oracle就会修改控制文件的内容。dba可以通过oem工具修改控制文件的部分内容如归档,但dba和用户都不应该人为地修改控制文件中的内容,否则会破坏控制文件。
在出现检查点事件时,ckpt进程会自动修改控制文件,以便数据文件和重做日志文件保持同步。
控制文件包括以下内容:控制文件所属的数据库名称,一个控制文件只能属于一个数据库。相关的数据文件和重做日志文件的名称,位置,联机、脱机状态信息。数据库创建的时间信息。当前重做日志的序号。它是一个在重做日志文件切换时被递增和记录的唯一性标识号。当前的检查点信息。rman的备份信息,是dba用来备份恢复数据库的使用工具。其参数为control_files
每个oracle数据库都应该至少有两个控制文件,并且应该分别存储在不同的磁盘上,进行多路复用,避免出现单点故障。
查询控制文件信息:select name from v$controlfile;
查询控制文件记录文档段的信息:select type,record_size,records_total,records_used from v$controlfile_record_section;
创建控制文件时指定的参数:maxdatafiles,maxlogfiles,maxlogmembers,maxloghistroy,maxinstances指定同时访问数据库的最大例程个数
备份恢复控制文件:
在数据库运行期间原封不动地复制当前的控制文件:alter database backup controlfile to '目录';
将控制文件备份为文本文件,被称为跟踪文件alter database backup controlfile to trace;
跟踪备份存放位置;show parameter user_dump_dest指定的目录中。
可以通过文本文件,创建新的控制文件;
select value from v$parameter where name='CONTROL_FILES';
SHOW PARAMETER CONTROL_FILES;
CREATE CONTROLFILE SET DATABASE prod
LOGFILE GROUP 1 ('/U01/ORACLE/PROD/REDO01_01.LOG',
               ('/U01/ORACLE/PROD/REDO01_02.LOG'),
        GROUP 2 ('/U01/ORACLE/PROD/REDO02_01.LOG',
               ('/U01/ORACLE/PROD/REDO02_02.LOG'),
        GROUP 3 ('/U01/ORACLE/PROD/REDO03_01.LOG',
               ('/U01/ORACLE/PROD/REDO03_02.LOG'),
RESETLOGS
DATAFILE '/U01/ORACLE/PROD/SYSTEM01.DBF' SIZE 3M
MAXLOGFILES 50
MAXLOGMEMBERS 3
MAXLOGHISTORY 400
MAXDATAFILES 200
MAXINSTANCES 6
ARCHIVELOG;
RESETLOGS指定重置日志文件,也可以设定为NORESETLOGS
镜像控制文件
多路复用控制文件:
alter system set control_files=
'c:/oracle/product/10.1.0/oradata/oamis/control01.ctl',
'c:/oracle/product/10.1.0/oradata/oamis/control02.ctl',
'c:/oracle/product/10.1.0/oradata/oamis/control03.ctl',
'e:/control04.ctl' scope=spfile;
数据文件:存储实际数据的操作系统文件。数据文件的大小与他们所存储的数据量的大小直接相关,会自动增大,但不会自动减少
一个表空间对应若干数据文件,而一个数据文件对应一个表空间。
在创建表空间时,oracle会同时为该表空间创建第一个数据文件,如果这个数据文件很大,这个创建过程会用较长时间。新创建的数据不包含任何数据,只是一个准备存储数据的空容器。
除了system表空间之外,任何表空间都可以由联机状态切换为脱机状态。当表空间进入脱机状态后,组成该表空间的数据文件也就进入脱机状态,也可以将表空间中的某一个数据文件单独地设置为脱机状态,以便进行数据库的备份或恢复。
重做日志文件:oracle随时将内存中的修改结果保存到重做日志文件中。当系统出现崩溃时,可以恢复丢失的数据。只要某项操作的重做信息没丢失就可以。
参数文件:也称为初始化文件,用于存储sga,可选的oracle特性和后台进程的配置参数,分为文本参数文件pfile和服务器参数文件spfile。可以使用其中之一来配置例程和数据选项。文本参数文件可以使用文本编辑器进行编辑。服务器参数文件时二进制文件,不能直接用文本编辑器进行编辑。
口令文件:是二进制文件,用于验证特权用户。特权用户是指具有sysoper或sysdba权限的特殊数据库用户。这些用户可以启动例程,关闭例程,创建数据库,执行备份恢复等操作。创建oracle数据库默认的特权用户是sys
归档日志文件:非活动的重做日志文件的备份,通过使用归档日志文件,可以保罗所有重做历史记录
后台进程跟踪文件:记录后台进程的警告或错误信息。每个后台进程都有相应的跟踪文件
服务进程跟踪文件:记录服务进程的相关信息,用于跟踪sql语句,诊断sql语句的性能,并实施相应的性能调整
软件结构:数据库管理系统实用化与物理数据库之间的一个中间层,是软件层。它具有一定的结构。
当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接,使用数据库。所以例程是用户和数据库之间的一个中间层。例程是由操作系统的内存结构和一系列进程所组成的,可以启动和关闭。
软件结构由内存结构和进程结构组成。
内存结构:内存是用来保存指令代码和缓存数据的。内存是用来保存指令代码和缓存数据的。要运行一个软件程序,必须先要在内存中为其指令代码和缓存数据申请,划分出一个区域,再将其从磁盘上读入,放置到内存,然后才能执行。oracle dbms是一个应用程序,所以它的执行也不例外,需要放置到内存中才能执行。
内存结构是oracle体系结构中最为重要的一部分,内存也是影响数据库性能的第一因素。内存的大小,速度直接影响数据库的运行速度。分为sga系统全局区,pga程序全局区
sga区是例程内存结构的主要组成部分,每个例程都只有一个sga区,当多个用户同时连接到一个例程时,所有的用户进程,服务进程都可以共享使用sga区。它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要都再sga区中进行,所以将其称为系统全局区。
包括sga和pga,使用内存最多的是sga,同时也是影响数据库性能的最大参数。
sga是指系统全局区,是一块用于加载数据,对象并保存运行状态和数据库控制信息的一块内存区域,在数据库实例启动时分配,当实例关闭时释放,每个实例都用于自己的sga区。
当数据库启动到nomount状态时,sga区已经分配,同时启动后台进程:show sga
一,数据高数缓存:数据高速缓存保存的是最近从数据文件中读取的数据块,其中的数据可以被所有用户共享.数据高速缓存由许多大小相等的缓存块组成,这些数据可能是被修改过,也可能未经修改。(buffer cache)主要由2个参数决定db_block_buffers和db_block_size, 他们相乘就是buffer cache的数值
select name,value from v$parameter where name in ('db_block_fuffers','db_block_size');
select
           (select value from v$parameter where name='db_block_buffers')
*
            (select value from v$parameter where name='db_block_size')
/1024/1024 buffer_cache_MB
from dual;
select * from v$version
show parameter sga_max_size
alter system set sga_max_size=120M scope=spfile;
oracle为buffer cache提供了多缓冲池技术,根据不同数据的同步访问方式,将buffer cache分为default,keep,recycle池3部分。对于经常使用的数据,可以在建表时就指定其存在keep池中;对于经常一次性读取使用的数据,可以将其存放在recycle池中;keep池中的数据倾向于一直保存,recycle池中的数据倾向于即时老化,而default池则存放于指定存储池的数据,按照lru算法管理。默认情况下,所有表都使用default池,它的大小就是数据缓存区buffer cache的大小,由初始化参数db_cache_size决定。如果在创建数据表或修改数据表时,指定storage(buffer_pool keep)或者stroage(buffer_pool recycle)语句,就设置了这张表使用keep或者recycle缓存区。这两个缓冲区大小参数是:db_keep_chche_size和db_recycle_cache_size来决定。
show parameter cache_size
alter system set db_keep_chche_size=4M
alter system set db_recycle_cache_size=4M
各缓冲池的设置,可以通过查询v$buffer_pool得到select id,name,block_size,current_size,target_size from v$buffer_pool;
  
1,脏缓存块:脏缓存块中保存的是已经被修改过的缓存块
2,空闲缓存块:等待被写入数据
3,命中缓存块:保存的是最近正在被访问的缓存块。命中缓存块将始终被保留的数据高速缓存中,不会被写入数据文件。
oracle通过两个列表来管理上述缓存块:
dirty列表保存已经被修改但还没有被写入数据文件的脏缓存块。
lru (least recently used)列表保存所有空闲缓存块,命中缓存块,以及还没有被移入dirty列表中的脏缓存块。可以将lry列表看成一个队列,当数据高速缓存中某个缓存块被访问后,这个缓存块就会被移动到lru列表的头部,而其他缓存块就会向lru列表的尾部移动。放在尾部的缓存块最先被移出lru列表。
oracle在将数据文件中的数据块复制到数据高速缓存中之前,必须先在数据高速缓存中找到空闲缓存块以便容纳该数据块。所以oracle将从lru列表的尾部开始搜索,知道找到所需要的空闲缓存为止。在搜索lru列表时,如果先搜索到的时脏缓存块,就将其移入dirty列表中,然后继续搜索;如果搜索到的时空闲缓存块,就将数据库写入其中,然后再将该缓存块移动到lru列表的头部。如果能够搜索到足够的空闲缓存块,既能将所有数据块都写入到对应的空闲缓存块中,则该搜索写入过程结束。如果没有搜索到足够的空闲缓存块,即不能将所有数据块都写入到对应的空闲缓存块,则oracle将先停止lru列表搜索,激活dbwr进程,开始将dirty列表中的脏缓存块写入数据文件。已经被写入数据文件的脏缓存块将变成空闲缓存块,并被放入lru列表中。执行完这项工作后,再重新开始搜索,这样就可以找到足够的空闲缓存块了。
二,重做日志高速缓存:当使用insert等操作时,oracle都会为这些操作写成重做记录。重做日志高速缓存就是用于存储重做记录的缓存。重做日志并不时直接写入磁盘的,而是首先被写入重做日志高速缓存,当重做日志高速缓存中的重做记录达到一定数量后,再由lgwr写入重做日志文件中。当出现重做日志文件切换时,由arch将重做日志文件中的数据写入归档日志文件中,以做备份。其参数为log_buffer
show parameter log_buffer
查询用户进程等待重做日志缓存的次数:select name,value from v$sysstat where name ='redo buffer allocation retries';
三,共享池:保存了最近执行的sql语句,plsql程序和数据字典信息,是堆sql语句和plsql程序进行语法分析,编译,执行的内存区。它主要由数据字典缓存,库缓存组成,参数为shared_pool_size
1,数据字典缓存:在oracle数据库的运行过程中,oracle会频繁对数据字典中的表,视图进行访问,以便确定操作的数据库对象是否存在,是否具有合适的权限等信息。为了提高访问的效率,oracle在共享池的数据字典缓存中保存了最常使用的数据字典信息,如数据库用户的帐户,数据库的结构信息等。在数据字典缓存中保存的是一条一条的记录,而其它缓存区中保存的是数据块。
2,库缓存:oracle dbms在执行用户进程提交的各种sql语句,plsql程序之前,先要对其进行语法上的解析,对象上的确认,权限上的判断,操作上的优化等一系列操作,并生成执行计划。这一系列操作会占用一定的系统资源。
如果多次执行相同sql语句,plsql程序代码,都要进行这一系列操作的话,就会浪费系统资源。库缓存的目的就是用于保存最近解析过的sql语句和plsql程序。这样,oracle在执行一条sql语句,一段plsql程序前,首先在库缓存中进行搜索,查看他们是否已经被解析过。如果有,oracle就利用库缓存中的解析结构和执行计划来执行,而不必再重复对它们进行解析了。这样就会明显提高执行速度。
共享池大小由shared_pool_size决定,太小,运行sql语句,plsql程序占用的时间会长,而影响数据库的性能。
show parameter shared_pool_size;
查询共享池中数据字典缓存的成功与失败的次数select sum(gets),sum(getmisses) from v$rowcache;
四,大池:用于需要大那促的操作提供相对应的内存空间,以便提高这些操作的性能。大池是一个可选的内存结构。dba可以根据实际需要来决定是否再sga区中创建大池。需要大池的操作:数据库备份和恢复,具有大量排序操作的sql语句。并行化的数据库操作。如果没有大池,上述操作所需的内存空间将占据共享池内存。由于这些操作所占据的内存比较多,会导致影响到共享池的使用效率,这时候,就应该考虑在sga区中创建大池,在大池中为这些操作分配内存
五,java池:对java语言的支持,用于存放java代码,java语句的语法分析表等。
pga用户进程连接到数据库,并创建一个对应的会话时,由oracle为服务进程分配的,专门用于当前用户会话的内存区。这个内存区是非共享的,只有服务进程本身才能访问它自己的pga区,而sga区则是所有服务进程都可以共享的内存区。
一,排序区:用于存放排序操作所产生的临时数据,它是影响pga区大小的主要因素,其大小由初始化参数sort_area_size定义。
二,会话区:保存会话所具有的权限,角色,性能统计信息
三,游标区:当运行使用游标语句时,oracle会在共享池中为该语句分配上下文区,游标实际上是指向该上下文区的指针。游标区在打开游标时创建,关闭游标时释放。因此在编写使用游标的程序时,应尽量避免反复地打开和关闭游标.
四,堆木戈区:保存会话中的绑定变量,会话变量以及sql语句运行时的内存结构等信息。
进程结构:进程时操作系统中的一个概念,是一个可以独立调度的活动,用于完成指定的任务。
用户进程:当用户执行一个基于oracle数据库的应用程序时,就会创建一个客户端的oracle用户进程,以便来执行相应的任务。
1,连接:
2,会话:
oracle进程:
1,服务进程:为了给客户端的用户进程提供服务,oracle会在服务器端创建相应的服务进程。用户进程必须通过服务进程才能访问数据库。服务进程分为专用服务进程和共享服务进程。
2,后台进程:
dbwr:数据库写进程,作用:管理数据高速缓存区,以便服务进程总能找到空闲缓存块,用于保存从数据文件中读取的数据块。在满足一定条件时,将dirty列表中的最近未被访问的脏缓存块成批地写入数据文件,以便获得更多的空闲缓存块。使用lru算法将最近正在使用的缓存块继续保留在lru列表中,以免重新读取数据文件才能获得这些缓存块中的数据。通过延迟写来优化磁盘读写操作。
启动dbwr进程的条件:当dirty列表中的脏缓存块达到一定数量。当服务进程在lru列表中查找了一定数量的缓存块,但还没有查找到空闲缓存块。dbwr进程出现超时,即大约3秒未启动dbwr进程。当出现检查点,lgwr进程通知dbwr进行写操作。dbwr进程的数目不应该超过系统cpu的数目,因为每个处理器同时只能运行一个dbwr进程。
lgwr:日志写进程,负责管理重做日志高速缓存区的一个后台进称,用于将重做记录从重做日志高速缓冲区写入重做日志文件。每个例程只有一个lgwr进程。启动lgwr进程的条件:用户通过commit语句提交当前事务。重做日志高速缓存被写满三分之一。dbwr进程需要未检查点清楚脏缓存块,即将脏缓存块写入数据文件。lgwr进程出现时,即大约3秒未启动lgwr进程。
ckpt:检查点进程,检查点是一个事件。当该时间发生时,数据高速缓存中的脏缓存块被写入数据文件,同时oracle将对控制文件和数据文件的文件头的同步序号进行修改,记录下当前数据库的结构和状态,以保证数据的同步。通常情况下,检查点发生在重做日志文件切换时。在执行了一个检查点后,oracle知道所有已提交事务对数据库所做的更改已经全部被写入到硬盘中了。此时数据库处于一个完整状态。在发生数据库崩溃后,只需要将数据库恢复到一个检查点执行时刻即可。因此,缩短检查点执行的间隔,可以缩短数据库恢复时所需要的时间。其作用:更新控制文件与数据文件,使其同步。出发dbwr进程,使其将脏缓存块写入数据文件。
oracle有3种检查点:数据库检查点:在每一次重做日志文件切换时,执行数据库检查点。此时dbwr进程将数据高速缓存中所有的脏缓存块写入数据文件中。表空间检查点:在将一个表空间设置未脱机状态时,执行一个表空间检查点。此时dbwr进程只会把数据高速缓存中的与该表空间相关的脏缓存块写入数据文件。时间检查点:即每间隔多长时间执行一次检查。
smon:系统监视进程,在例程启动时负责对数据库进行恢复。清理不再使用的临时段。将各个表空间的空闲碎片合并在一起,使之更容易分配。
pmon:进程监视进程作用:恢复中断或失败的用户进程,服务进程。清除非正常中断的进程留下的孤儿会话。回退未提交事务。释放进程所占用的各种资源。监视服务进程和调度进程,如果它们失败,则自动重新启动他们。
arch:归档进程,负责在重做日志文件切换后将已经写满的重做日志文件复制到归档日志文件中,以防止循环写入重做日志文件时将其覆盖。(只有数据库运行在归档模式下archivelog,arch进程才被启用),要启动archi进程,需要将初始化参数archive_log_start设置为true。arch进程启动后,数据库将具有自动归档功能。但即使数据库运行在归档模式下,如果archive_log_start参数设置为false,arch进程也就不会被启动。这时,当重做日志文件全部被写满后,数据库将被挂起,等待dba进行手工归档。当arch进程正在归档一个重做日志文件时,任何其他进程都不能访问这个重做日志文件。
oracle数据字典提供了数据库的系统信息,以及例程的性能信息
数据字典包括数据字典表和数据字典视图两部分
数据字典表属于sys用户,通过在创建数据库时自动运行sql.bsq脚本来创建数据字典表。大部分数据字典表的名称都含有$等这样的特殊符号
sql.bsq在以下目录:c:/oracle/product/10.1/db_1/rdbms/admin/sql.bsq
数据字典视图:在创建数据库时,通过自动运行catalog.sql脚本来创建数据字典视图后,创建公用同义词和授权。
其脚本在以下目录:c"/oracle/product/10.1.0/db_1/rdbms/admin/catalog.sql
数据字典视图划分为三类:USER_用户视图
ALL_扩展用户视图
DBA_数据库管理员视图
一个用户可以通过语句查询所创建的所有方案对象的信息:select object_name,object_type from USER_OBJECTS;
查看jack的对象信息:select owner,object_name,object_type from ALL_OBJECTS owner='jacd';
使用dba视图,如果不是sys用户,则应该在dba视图前加sys前缀:select owner,object_name,object_type from sys.DBA_OBJECTS
owner='jack';
动态性能表和动态性能视图
在例程的运行过程中,oracle会在数据字典中维护一系列虚拟的表,在其中记录与数据库活动相关的性能统计信息,这些表被称为动态性能表。这些虚拟的表不是固定的表。即在例程启动时被创建,并将向其中添加信息,而当例程消亡时,这些表也就被删除了。动态性能视图属于sys用户。oracle自动在动态性能表上创建了一些视图,即动态性能视图。所有动态性能视图都以v_$开头。oracle为这些视图创建了公用同义词。这些同义词都以v$开头,因此动态性能视图也被称为V$视图。
desc v$datafile;查询v$datafile视图的结构

 

原创粉丝点击