zoukankan      html  css  js  c++  java
  • oracle调优 浅析“会话管理开销”

    调优之浅析“会话管理开销”

     

    【简单介绍】

           在调优的过程中,对于会话的管理是比較普遍的问题,由于维护会话的开销相对是比較高的。

    【过程表现例如以下】

           客户请求(sid)→监听接收到→监听派生出新的进程(systemprocess id)→客户进程

    凝视:

    SPID:system process id。表示该serverprocess在OS层面的Process ID(操作系统进程ID);

    PID:oracle process id。能够理解为Oracle自身使用的进程ID;

    SID:session标识,在连接其他列时使用

    【操作过程】

    SQL> select sid from v$mystat whererownum=1;

    --当前会话的sid

          SID

    ----------

          159

    SQL> select p.spid

     2  from v$process p,v$session s

     3  where p.addr=s.paddr ands.sid=159;

    --通过sid(session标识)找到对应的serverprocess

    --spid(system process id)serverprocess在OS层面的Porcess ID,即操作系统进程ID

    --pid(oracle process id)oracle进程ID

    --查询条件为进程地址等于会话里的进程地址,而且会话sid为159

    --查询出为sid159服务的system processid为426192

    SPID

    ------------

    426192

    $ps -ef |grep 426192|grep -v grep  

    --查看system process id(serverprocess id)为426192的进程,而且把grep进程本身排除掉

       oracle 426192 303338   0 09:29:21      - 0:02 oraclemetro (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

    --查看到spid为426192的oracle进程。这是一个专有模式连接的进程

    --以上查询表明维护一个会话的开销是比較高的

    【情景举例】

           如果操作人员登陆一个系统时。会将sql发送给应用server。符合验证后会反馈回来,此时数据库链接断掉。一段时间后操作人员想依据ID查询对应数据时,会又一次发送一个链接,这次把信息返回后,又会断掉。这就是一个比較糟糕的会话链接,循环往复,由于在不停的创建链接、终结链接、创建链接、终结链接......将这样的情况体如今oracle上面,成本就会比較高了。

           在实际生产环境下,对于应用server(BS结构)会建立长链接(或链接池)以解决前面的问题。比方说,以weblogic作为应用server。创建了很多链接对象连接到oracle数据库,连上以后就不再断开了。之后。前端的应用须要使用数据库的时候,会先连接到应用server,应用server分配一个链接池里的空暇链接给这个应用请求使用。这个链接用完之后不会中断,而是把它变成空暇的状态再放回链接池。这个过程就是有效的降低了会话的数量。

  • 相关阅读:
    推荐系统之推荐系统的分类,即分析框架
    问题解决——OpenGL超级宝典 关于gltDrawTorus的错误解决
    SICP 习题 (1.10)解题总结
    [置顶] android 自定义圆角ImageView以及锯齿的处理
    Codeforces Round #199 (Div. 2)
    数组——约瑟夫问题
    素数距离问题_ny_24.java
    [置顶] Guava学习之Splitter
    植物-常见植物:地黄、熟地黄
    植物-常见植物:仙人掌
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8686597.html
Copyright © 2011-2022 走看看