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数据库,连上以后就不再断开了。之后,前端的应用需要使用数据库的时候,会先连接到应用服务器,应用服务器分配一个链接池里的空闲链接给这个应用请求使用。这个链接用完之后不会中断,而是把它变成空闲的状态再放回链接池。这个过程就是有效的减少了会话的数量。

oracle调优 浅析“会话管理开销”,布布扣,bubuko.com

时间: 2024-10-29 19:11:06

oracle调优 浅析“会话管理开销”的相关文章

oracle调优 浅析有效的游标管理

浅析有效的游标管理 [思路分析] 能够把游标理解成共享的运行计划,当sql不被共享时.常规的解决思路有两个方向: 1.调整共享池的尺寸(共享池的库缓存区中共享运行计划): 2.sql书写时尽量重用绑定变量,以起到共享sql的作用. [较差的游标管理体现] 1.不重用运行计划(缺少绑定变量) 2.重用的运行计划保留不下来(共享池尺寸过小)

oracle调优 浅析关联设计

浅析关联设计 [范式] 比較理想的情况下,数据库中的不论什么一个表都会相应到现实生活中的一个对象,如球员是一个对象,球队是一个对象,赛程是一个对象,比赛结果又是一个对象等等,则就是范式. [关联设计] 对于关联设计能够理解成表和表之间要有关联关系,在对表查询时常常使用关联查询. 补充:关系数据库的来源:对一个事务操作要从多个表中读. 如2014巴西世界杯这个表空间中要有球员表.赛程表.比赛结果表,比赛结果表要关联比赛的队伍名字.球员的名字最后关联一个比赛的结果,这就是一个简单的关联关系.至于为何

ORACLE 调优

Oracle数据库应用系统的调优主要包括十个方面:(1).优化数据库内存:(2).在Oracle共享池中固定应用程序代码:(3).优化数据存储:(4).优化数据排序的技术:(5).优化SQL语句:(6).优化回退段:(7).优化索引:(8).优化磁盘I/O:(9).定期生成数据库对象的状态统计信息:(10).优化操作系统环境.其实质就是降低CPU负载.改善I/O性能. 1.化磁盘I/O数据库的作用就是实现对数据的管理和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数

oracle调优 性能与安全的权衡

性能与安全的权衡 对于数据库调优而言,没有绝对的性能也没有绝对的安全.正如鱼和熊掌不能兼得一样,是不能完全兼顾的,就像是矛和盾此消彼长.下面就对比较常见的几个因素做一个简要的阐述: 1.多元化控制文件: 多个地方,意味着更安全,一个损坏了可以转储另外一个继续使用.但同样,越多也意味着IO压力越大,一般为2到3个控制文件多元化.比如:假设3个控制文件都损坏的概率已经相当低了,再多的控制文件也就没有意义了.因为一个控制文件损坏,数据库立刻就会崩溃,检查点的发生会产生预警信息,这样就可以根据提示人为的

【我的技术我做主】oracle调优笔记(揭开传言的面纱)

一.oracle的不解之缘 别人高考报志愿,都是因为热爱那门专业,所以选择了大学的专业.还有些人报志愿是看到了未来长远的发展比较好,所以选择了大学的专业.而我呢高考志愿是如何选择的呢?家里人没啥文化,父母全是普通的老百姓,自然也没有人帮我参考报啥专业.于是和母亲商量上网查查吧,哪个专业比较好?搜着搜着,看到了一条"某互联网公司招聘数据库专业人员,年薪10W",我毫不犹豫的报了我的大学专业<数据库设计与开发>.现在回想起来,我自己都觉得可笑,就因为那1条招聘信息,我选择了我的

通过案例学调优之--JOB管理

Oracle在创建和管理job主要借助两个包,分别为DBMS_JOB和DBMS_SCHEDULER [[email protected] ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 25 17:02:15 2014 Copyright (c) 1982, 2009, Oracle.  All rights reserved. Connected to an idle instance. 1

Oracle SQL调优记录

目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表.面对复杂的业务场景,确实有些情况是需要关联很多表的.当然有些情况是可以将业务实现放在Java代码里,有些情况可以不要关联很多表. 二.注意点 对于SQL调优,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度. 三.O

【转】oracle内存分配和调优总结

转自 http://blog.itpub.net/12272958/viewspace-696834/ 一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且google很多下.现在记录下来,做下备份.  一.概述:        oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是 SGA和 PGA(process global area or private global area).对于 SGA 区域内的内存来说,是共享的

[转]oracle性能调优之--Oracle 10g AWR 配置

一.ASH和AWR的故事 1.1 关于ASH 我们都知道,用户在ORACLE数据库中执行操作时,必然要创建相应的连接和会话,其中,所有当前的会话信息都保存在动态性能视图V$SESSION中,通过该视图,DBA可以查看用户实际执行的操作,或者当前的等待事件等.通常这部分信息是调优过程中的关键信息,不过,一旦连接断开.会话信息就会被同时从V$SESSION及其它相关视图中清除,也就是说,用户执行完操作走人,而你(DBA),如果不能在当前逮到他,过了这点,就不知道它曾经做过什么了. 10g 版本中,O