动态性能视图,Oracle数据库维护的好帮手(一)


动态性能视图主要是Oracle数据的库自动收集并记录当前例程的活动信息。当数据库管理员启动某个例程时,数据库会自动建立动态性能视图;当停止某个例程时,数据库又会自动删除这些动态性能视图。这表面看起来跟数据字典有异曲同工之妙,但是,两者信息的来源还是有很大差异的。数据字典的信息是从数据文件中取得;而动态性能视图的信息则是从SGA内存以及控制文件中取得。所以,两者所反映的信息还是有很大差异的。数据库管理员利用这些动态性能视图,可以了解数据库运行的一些基本信息,为我们进行数据库维护以及数据库性能优化提供一些数据上的支持。一般情况下,我们可以通过动态性能数据掌握两类重要的数据库运行信息。一是了解数据库运行相关的性能数据,如内存的使用量、磁盘排序发生的机率等等。二是取得与磁盘和内存结构相关的其他信息。这些信息将是我们进行数据库维护与数据库性能调整的主要参考依据。
  为了便于数据库管理员查询这些动态
视图,
Oracle数据库中的动态性能视图跟其他数据库对象有着不同的命名规则。通常情况下,动态性能视图都是以V_$前缀开头的,并且Oracle数据库维每个动态性能视图提供了相应的同义词。下面笔者就介绍一些动态性能视图查询中的一些技巧以,帮助广大数据库管理员提高对Oracle数据库动态性能视图的认识。

  一、知道可用的动态性能视图。

  因为动态性能视图是随着例程的启动而启动,随着例程的消亡而消亡,其是动态变化的。所以,对于一些动态性能视图不怎么了解的数据库管理员来说,第一步就是需要了解,现在数据库中到底有哪些动态性能视图可以用。Oracle数据库中有一张V_$fixed_table动态性能视图。这张视图中纪录着当前所有可用的动态性能视图。当数据库管理员对动态性能不怎么了解的话,可以先通过这张视图了解动态性能视图的概况,并了解哪些动态性能视图当前是可用的。数据库管理员可以通过下面的命令查询当前可用的所有动态性能视图。

  

  在通常情况下,数据库不同的状态其动态性能视图还是有比较大的差异。数据库管理员掌握这些差异,对于他们借助这些视图来管理数据库可能会有更大的帮助。

  一是数据库处于“NOMOUNT”状态。数据库启动例程时,Oracle数据库会打开参数文件,分配SGA内存并启动后台进程。此时,其实数据库还没有挂栽。此时,动态性呢视图收集的信息来源只有是SGA,而不会从控制文件中收集相关的信息。所以,动态性能视图的数量要少得多。

  二是当数据库处于MOUNT状态时,数据库会根据初始化参数打开所有的控制文件。所以,当例程处于Mount状态时,动态性能视图其收集到的信息就要第一个状态多的多。因为此时,动态性能视图还会去收集控制文件的相关信息。不过,此时动态性能视图所收集到的资料还不是最全的。

  三是当用户打开数据库时,Oracle系统会根据控制文件所记载的信息去打开所有的数据库文件以及重做日志。此时,数据库管理员除了可以从SGA和控制文件中获取信息的动态性能视图外,还可能访问与Oracle数据库性能相关的动态性能视图,如会话等待时间等视图。另外需要注意一点,就是只有在这个状态时,我们才能够访问数据库的数据字典视图。

  我们在维护数据库或者调整数据库性能时,数据库管理员需要经常访问这些动态性能视图,以取得例程的动态信息。故数据库管理员需要对一些常用的动态性能视图有一定的了解。只有如此,在能够在需要的时候,及时的了解自己所需要的信息。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3