• oracle session 相关优化


    导读:
    同学们是不是都用遇到过这种情况,一个业务系统开发期业务并发量只是估算一个值,而系统上线后这个并发量可能会出现溢出或是不够的
     
    情况。在这种情况下我们DBA怎么给出合理的性能优化建议呢?本文就是利用数据给出session并发量的合理值。
     
    目的:
    利用数据给出ORACLE性能优化session的合理值。
     
    环境:
    OS: 6.1 AIX
    Oracle: 11.2.0.4  rac on 2 nodes
     
    1.实例启动后用户最大并发session?
    select SESSIONS_CURRENT,SESSIONS_HIGHWATER from v$license;
     
     
    2.数据库是否有大量的inactive session?
    select
    (select count(*) from v$session where status='INACTIVE') as "session inactive" ,
    (select count(*) from v$session ) as "session total" from dual;
     
    --可以初步判断中间件连接数设置是否合理。如果inactive/total比值大于0.6考虑是否可以优化(个人建议)
     
    3.数据库大量inactive session都是什么业务?
    select username,count(*) from v$session where status='INACTIVE' group by username;
     
    --可以初步判断是什么业务有过多的inactive,联系业务是否可以优化(对“症”下药)
     
    4.既然发现了数据库有大量的inactive存在,怎么样有理有据的给出优化建议呢?
    我的方法:
    写一个统计total session 与active session的脚本,定时执行脚本并将统计结果写入一张表。经过大量的统计(业务高峰与低峰)就可以
     
    得到合理的session值,可以把这个合理的并发session值反馈给业务,进而最优使用系统资源,而不是产生大量的inactive session
     
     
    4-1.创建一个收集统计信息的表dou_tunning
    create table dou_tunning (
    username varchar2(40),
    total number,
    active number,
    osdate date);
     
    4-2.编写一个收集session的脚本
    vi check_session.sh
    #oracle用户的环境变量,一定编辑在脚本中#
    sqlplus -s 'system/system' <
    insert into  dou_tunning (select t.username,t.total,d.active,sysdate from (select username,count(*) as total from gv
     
    $session where username is not null and username not in ('SYSTEM','SYSMAN','DBSNMP') group by username ) t ,(select
     
    username,count(*) as active from gv$session where username is not null and status='ACTIVE' group by username ) d where
     
    t.username=d.username) ;
    commit;
    exit;
    EOF
     
     
     
    4-3.定时执行收集session的脚本
    doudou1:/home/oracle$crontab -l
    5,15,25,35,45,55  * * * * sh /home/oracle/check_session.sh
     
    --AIX中的crontab不支持“/”,很无奈只能写成这样了。当然了,你也可以每分钟收集一次session信息,给客户更详尽的优化数据。
     
    4-4.根据收集来的数据,根据业务的高峰期并发session值,进而给出最优并发session值
     
    5.CASE分析
    select * from dou_tunning where username='TAB_DOUDOU'
    TAB_DOUDOU 363 1 2014/8/12 13:25:01
    TAB_DOUDOU 361 1 2014/8/12 13:28:00
    TAB_DOUDOU 358 1 2014/8/12 13:30:01
    TAB_DOUDOU 358 3 2014/8/12 13:31:00
    TAB_DOUDOU 358 2 2014/8/12 13:32:00
    TAB_DOUDOU 358 3 2014/8/12 13:33:00
    TAB_DOUDOU 358 2 2014/8/12 13:34:01
    TAB_DOUDOU 362 1 2014/8/12 13:36:00
    TAB_DOUDOU 363 4 2014/8/12 13:37:00
    TAB_DOUDOU 363 2 2014/8/12 13:38:01
    TAB_DOUDOU 366 3 2014/8/12 13:39:00
    TAB_DOUDOU 368 2 2014/8/12 13:40:00
    TAB_DOUDOU 364 2 2014/8/12 13:41:00
    TAB_DOUDOU 364 1 2014/8/12 13:42:00
    TAB_DOUDOU 358 3 2014/8/12 13:43:00
    TAB_DOUDOU 362 1 2014/8/12 13:44:00
    TAB_DOUDOU 362 2 2014/8/12 13:47:00
    TAB_DOUDOU 360 1 2014/8/12 13:48:00
    TAB_DOUDOU 358 1 2014/8/12 13:50:00
    TAB_DOUDOU 357 3 2014/8/12 13:51:01
    TAB_DOUDOU 357 1 2014/8/12 13:52:00
    TAB_DOUDOU 358 1 2014/8/12 13:53:00
    TAB_DOUDOU 356 1 2014/8/12 13:55:00
    TAB_DOUDOU 362 4 2014/8/12 14:05:00
    TAB_DOUDOU 362 2 2014/8/12 14:15:00
    TAB_DOUDOU 363 1 2014/8/12 14:45:00
    TAB_DOUDOU 363 2 2014/8/12 14:55:01
    TAB_DOUDOU 361 3 2014/8/12 15:05:00
    TAB_DOUDOU 362 1 2014/8/12 15:15:01
    TAB_DOUDOU 366 1 2014/8/12 15:25:00
    TAB_DOUDOU 360 1 2014/8/12 15:35:00
    TAB_DOUDOU 359 2 2014/8/12 15:45:00
    TAB_DOUDOU 361 1 2014/8/12 15:55:00
    TAB_DOUDOU 361 1 2014/8/12 16:05:00
     
    --以上是一个核心业务统计的session值,可以看到接近400的session,多数都是inactive,这个一个资源利用严重不合理的案例,当然了,
     
    我会继续给这个系统进行分析与比较,最终给客户提出一个有建设性意义的session值。
     
     
    总结:
    合理的利用资源也是一种优化的方式。优化其实是一种思想。
  • 相关阅读:
    vue.js插入dom节点的方式
    window.atob()与window.btoa()方法实现编码与解码
    使用FileReader接口读取文件内容
    移动前端—H5实现图片先压缩再上传
    JS单体内置对象之Math常用方法(min,max,ceil,floor,round,random等)
    JS中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值
    JS按位非(~)运算符与~~运算符的理解分析
    JS获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性
    Bootstrap 按钮
    Bootstrap CSS 表单
  • 原文地址:https://www.cnblogs.com/travel6868/p/4949981.html
Copyright © 2020-2023  润新知