Oracle中有很多的性能数据可以分析, 有些数据反应的不仅仅是数据库的, 而且可以反应出应用的或架构上的信息, 作为DBA应当主动分析, 并提供给相关的人员, 以协助技术决策. 比如, 应用程序中连接池的设置, 最大允许多少个连接连到数据库中?

    粗略一看, 好象DBA没有办法得到这些信息, 应当从应用日志中去统计不能获得连接或连接超时的报警信息. 在真实应用中, 大部份的数据库连接都是保持的, 也就是用了连接缓冲池, 会话不会经常断开重连, 因此可以通过持续观察应用服务器在数据库上产生的连接数来分析, 如果真实连接数持续达到了设置的最大值, 就表示需要增大最大连接数的设置了.

    用如下SQL来取得连接数据, 每5分钟取一次, 然后保存到一张表中,

select sysdate day, INSTANCE_NAME,
      machine, username, count(*) conncount
  from v$session, v$instance
  group by machine, username, instance_name

    用WebChart来显示某台机器, 最近两天或三天的连接数, 就可以看出需不需要扩大连接设置了.



 

    这其实很简单, 但结果是使我们的应用程序数据库连接设置有数据可依, 真实地发挥了作用.