二与SGA相关的动态性能视图
虽然从G以后的数据库系统中已经实现了内存的自动分配功能Oracle数据库系统从G以后引入了自动调整SGA(系统共享区)的功能这个功能的话数据库管理员之需要指定一个系统共享区的总大小即可Oracle数据库系统会负责其在整个系统共享区池中内部决定优化内存分配的重任有了这个功能之后数据库系统分配给不同的SGA缓存的内存将会随着时间以及系统的运行状况动态的改变以适应数据库系统工作量的变化大大提高了SGA的利用率
所以通常情况下数据库管理员不需要手工的去更改SGA的相关参数不过在数据库管理员还是需要了解系统共享区的利用情况因为在必要的情况下数据库管理员需要调整系统共享区总的大小以提高数据库服务器的性能
具体的来说数据库管理员需要掌握两张动态性能视图分别为V$SGA 与V$SGAINFO这两张动态性能视图反映了系统共享区不同的信息前者主要是现实系统共享区的主要组成部分的大小如共享池数据高速缓存重做日志缓沖区等等所占系统共享区的大小等等而后者者反映了系统共享区分配的更加详细的信息若数据库管理员怀疑是因为系统共享区的问题导致了数据库性能下降的结果则这两张是主张其论点的最有力的证据一般情况下若企业在同一台服务器中部署了多个应用服务如Oracle数据库服务器与邮件服务器则就需要关注一下这个SGA系统共享区的分配情况
三显示当前的会话信息
无论是处于数据库维护还是安全方面的需要数据库管理员往往需要了解当前数据库的会话信息如当数据库有异常情况发生时数据库管理员就需要判断是否有特殊的用户连接在数据库上搞破坏;再如有时候前台应用程序也需要了解当前跟数据库通话的用户信息以方便其进行管理所以在这种情况下他们都需要用到数据库中的一张V$SESSION动态性能视图这张视图中纪录了会话的详细信息如会话的ID号会话的序列号用于表示会话所对应的数据库用户等等
不过数据库管理员需要注意另外一个细节若这里的用户名为空的话则表示这个会话是后台进程会话
四显示日志的相关信息
无论是对于软件还是硬件的管理日志都是很重要的一种参考信息Oracle数据库系统中日志更加显得重要因为Oracle数据库系统的日志种类丰富包含的内容详细而且日志还纪录着数据库系统的所有操作包括数据的更新情况所以数据库管理员除了要保障日志的完整性之外还需要关注日志的安全性
在Oracle数据库系统的动态性能视图中有一张视图专门用来显示视图的当前信息这张视图就是V$LOG视图这张视图一般包括如下有用的信息如日志组组号日志所属的重做线程编号用于标识日志组的当前日志序列号日志组的大小日志组的成员个数日志组的状态等等如当数据库管理员发现日志有异常的更改时就可以通过这张视图来查看有哪些用户是这个日志组的成员等等数据库管理员也可以通过这张视图了解当前日志的使用状态
五跟锁相关的信息
数据库管理员在调整数据库性能的时候很大一部分工作就是要通过调整索引调整SQL语句来减少锁沖突的发生为此他们首先需要知道当前锁的状况只有知道病因之后数据库管理员才能够对症下药提高数据库性能
为此数据库动态性能视图中提供了两张有用的视图分别为V$SESSION 与V$LOCKED_OBJECT前者主要统计占有锁的会话信息其中还包括有哪些锁正在等待会话若等待锁的会话比较多的话就说明当前数据库因为锁导致的阻塞情况比较严重数据库管理员应该想方设法来避免这种锁沖突的产生主要可以通过调整SQL语句等手段来减少这种等待时间
而后者数据时显示被加锁的数据库对象通过查询这张动态视图数据库管理员可以了解具具体的加锁对象名以及执行加锁操作的用户这张表中的内容往往结合前者那个动态视图中的信息一起为数据库管理员调整数据库性能时提供数据上的支持通过这两张表数据库管理员基本上可以判断数据库性能的不理想是否是由于锁导致的以及是否有必要对SQL语句进行调整以避免锁沖突的发生
总之动态性能视图提供了一些数据库运行中很宝贵的信息数据库管理员要学会利用这些信息让他们成为我们管理数据库的一个好帮手