Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中如何评估真正的并发session

在Oracle中可以通过dba_hist_active_sess_history视图查看并发的会话,可以通过以下脚本查询出每个用户最大并发,当前的连接数,及profile限制的最大连接数等。SELECT AA.USERNAME, AA.MT, BB.CNT, CC.LIMIT, AA.MN, AA.AG
 FROM (select username, max(cnt) MT, min(cnt) MN, avg(cnt) AG
         from (select username, snap_id, count(1) cnt
                 from dba_hist_active_sess_history a, dba_users b
                  where --user_id = 65
               -- sample_time >= to_date("2014-06-27", "yyyy-mm-dd")
               --and sample_time < to_date("2014-10-29", "yyyy-mm-dd")
               ----and snap_id>=37306 and snap_id < 37401
               --snap_id>=36062 and snap_id < 38073 285240710
                  a.user_id = b.user_id
                  group by username, snap_id)
          group by username) AA,
        (SELECT USERNAME, COUNT(1) CNT FROM V$SESSION GROUP BY USERNAME) BB,
        (SELECT B.USERNAME, A.LIMIT
         FROM dba_profiles A, DBA_USERS B
          WHERE A.PROFILE = B.PROFILE
            and b.account_status = "OPEN"
            AND A.resource_name = "SESSIONS_PER_USER") CC
  WHERE AA.USERNAME = BB.USERNAME
    AND BB.USERNAME = CC.USERNAME;结果如下:USERNAME  MT  CNT  LIMIT  MN  AG 
APP_user1  14  100  100  1  1.790323 
APP_user2  6  100  100  1  1.571429 
APP_user3  3  100  100  1  1.328125 
APP_user4  6  100  100  1  1.425532 
APP_user5  6  100  100  1  1.753846 更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址