用户/服务器进程的概念及v$session/V$PROCESS视图简介

服务器进程概念:

Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息。

对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约需要的内存是: AIX 5-10M  ;LINUX 3-5M内存--实测是1M多。

而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程。

服务器进程主要用来执行下列的任务:

解析、执行客户端提交的SQL语句。

从磁盘数据文件中读取必须的数据块到SGA得数据缓存区。

以适当形式返回SQL语句执行结果。

user process用户进程概念

客户机使用SQLPLUS/PLSQL等工具通过tnsnames.ora中的服务名,连接到数据库服务器的服务器进程。要经过监听--服务器进程--PGA。

PROCESSES与SESSIONS数之间关系:   --

11g 官方默认值:sessions=1.5*processes + 22     文档:http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams234.htm#sthref696

10g 官方默认值:sessions=1.1*processes + 5       文档:http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams191.htm#REFRN10197

连接和会话的关系:

连接:

用户进程和 Oracle 实例间的通信通道communication pathway。

这个通信通道是通过进程间的通信机制interprocess communication mechanisms(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件network software(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。

会话 :

--在专有服务器模式下,一个连接对应一个会话。

主要指用户和数据库间的联系。

例如,当用户启动 SQL*Plus时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。见下图1

例如:使用PLSQL连接数据库,就有一个连接,相应也有一个会话。在PLSQL中打开一个SQL窗口,就又是一个连接,相应也有一个会话。

在PLSQL里打开的SQL窗口查询:

select sid from v$mystat where rownum=1;

40

select  b.spid,a.sid,a.username,a.program,a.machine  from v$session a,v$process b where a.paddr=b.addr and a.type='USER';

30152    51    BYS   plsqldev.exe    WORKGROUP\BYS  ---这一条是打开PLSQL软件连接到数据库的会话信息

30187    40    BYS    plsqldev.exe    WORKGROUP\BYS --这一条是当前PLSQL中的SQL窗口对应的会话信息

在运行数据库的LINUX系统上查询:  ---进程的PID与PLSQL中查询的可以对应。

[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep

oracle   30152     1  1 21:01 ?        00:00:02 oraclebys3 (LOCAL=NO)      --对应PLSQL程序的会话

oracle   30187    1  0 21:02 ?        00:00:00 oraclebys3 (LOCAL=NO)      --对应PLSQL中的SQL窗口

#####################

使用SQLPLUS测试:  --实验环境,现在没有连接到数据库。

[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep   ---查询无返回,当前系统中没有ORACLE的连接信息

然后另开一窗口2,SSH到数据库所在服务器,启动SQLPLUS登陆数据库。再查询:

[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep

oracle   30305 30302  3 21:10 ?        00:00:00 oraclebys3 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) --这一条就是窗口2中新打开SQLPLUS连接的信息 LACAL=YES,表明不是通过监听连接的--本地IPC

时间: 2024-11-08 19:03:10

用户/服务器进程的概念及v$session/V$PROCESS视图简介的相关文章

v$session及v$process视图涉及的相关会话信息的查询

关于服务器进程与用户进程概念及v$session/V$PROCESS视图简介 ,详见:http://blog.csdn.net/q947817003/article/details/16922457 本文根据性能分析的一般思路来进行: 先看OS资源,确定CPU/内存消耗最多的进程,从进程找到会话,再查看会话详细信息:包括会话类型.执行的SQL等等. 各种查询 1.查当前会话SID BYS@ bys3>select sid from v$mystat where rownum=1;       S

web服务器C++,http协议.如何用session保存用户状态,前台是html js的

问题描述 web服务器C++,http协议.如何用session保存用户状态,前台是html js的 web服务器C++,http协议.如何用session保存用户状态,前台是html js的 .如题,最好详细一些 解决方案 把session信息保存在cookie中,前台直接发送过来. 解决方案二: 你说的C++是单独的程序吗?服务器端可以用Redis缓存session信息:

创建ASP.NET监视服务器进程

asp.net|创建|服务器|进程 产品简介您看到过出色的咖啡店店员送咖啡的情景吗?那简直就是咖啡豆.蒸汽和牛奶调和咖啡饮料在跳精彩的芭蕾,跳跃着奔向焦急等候的顾客.然而,即便是最好的店员偶尔也会出现问题.比如两个单子在处理时搞混了,结果送到您面前的是一杯 Soy latte.也可能是杯子上龙飞凤舞的潦草字迹根本就是写错了,或者店员理解错了.有人要了一杯"卞高奇若"(卡普其诺),可怜的店员绞尽脑汁也弄不懂顾客到底要点什么.如果出现了类似的问题,就必须停止处理,然后再重新开始.好的服务员

《UNIX网络编程 卷1:套接字联网API(第3版)》——8.9 服务器进程未运行

8.9 服务器进程未运行 我们下一个要检查的情形是在不启动服务器的前提下启动客户.如果我们这么做后在客户上键入一行文本,那么什么也不发生.客户永远阻塞于它的recvfrom调用,等待一个永不出现的服务器应答.然而这是一个很好的例子,它要求我们更多地了解底层协议以理解网络应用进程将发生什么. 首先,我们在主机macosx上启动tcpdump,然后在同一个主机上启动客户,指定主机freebsd4为服务器主机.接着,我们键入一行文本,不过这行文本没有被回射. macosx % udpcli01 172

MySQL服务器进程CPU占用100%的解决方法_Mysql

朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt.exe) CPU 占用率总为 100% 高居不下.此主机有10个左右的 database, 分别给十个网站调用.据朋友测试,导致 mysqld-nt.exe cpu 占用奇高的是网站A,一旦在 IIS 中将此网站停止服务,CPU 占用就降下来了.一启用,则马上上升. MYSQL CPU 占用 100% 的解决过程 今天早上仔细检查了一下.目前此网站的七日平均日 IP 为

服务器进程异常的原因分析(第二篇)

最近看到一个报警,是显示某一个oracle的备库进程数达到了2000多个.ZABBIX-监控系统: ------------------------------------报警内容: Too many OS processes on ora_xxx@10.127.13.123 ------------------------------------报警级别: PROBLEM ------------------------------------监控项目: Number of processes

在Oracle中session和process的区别(转)

对应元数据表 v$resource_limit. 相互关系 sessions=1.1 * processes + 5 ,至于开多少个进程和你的用户并发数有关. 如果修改要修改数据库初始化参数,processes 和session 在Oracle中session和process的区别 问:在Oracle中session和process的区别是什么?答:一.一个process可以有0个.1个或者多个session,一个 session也可以存在若干个process中,并行同样是一个session对应

Oracle的connection、session和process

from asktom: I'll try to put it into a single, simple paragraph: A connection is a physical circuit between you and the database.  A connection might be one of many types-- most popular begin DEDICATED server and SHARED server.  Zero, one or more ses

Oracle中的Connect/session和process的区别及关系介绍_oracle

Session:在计算机中,尤其是在网络应用中,称为"会话". Session:在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间. Connect.session.process的区别: 一个数据库的Connect可以有一个或多个session,同时connect也可以有一个或多个process. 在专业服务器连接方式中,一个session对应一个process,在共享服务器方式中,一个process可以