设为首页 加入收藏

TOP

oracle调优浅析“会话管理开销”
2015-11-21 01:54:21 来源: 作者: 【 】 浏览:0
Tags: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发送给应用服务器,符合验证后会反馈回来,此时数据库链接断掉。一段时间后操作人员想根据ID查询相应数据时,会重新发送一个链接,这次把信息返回后,又会断掉。这就是一个比较糟糕的会话链接,循环往复,因为在不停的创建链接、终结链接、创建链接、终结链接......将这种情况体现在oracle上面,成本就会比较高了。

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何在Windows下启动Oracle数据库.. 下一篇【PLSQL】绑定变量,动态SQL,硬..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: