[20171102]视图v$session中process字段含义

[20171102]视图v$session中process字段含义.txt

--//被别人问及这个问题,自己也简单测试看看.我记忆里看warehouse的教学视频,好像提到的client端的进程号.

1.环境:

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.使用本地登录看看.

sqlplus scott/book

SCOTT@book> @ &r/spid
       SID    SERIAL# PROCESS                  SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ ------ ------- ---------- --------------------------------------------------
        54        611 12507                    12508       28        222 alter system kill session '54,611' immediate;

--//可以发现进程号是12508,PROCESS=12507.

$ cat spid.sql
SELECT s.sid, s.serial#, s.process, p.spid, p.pid, p.serial# p_serial#,'alter system kill session '''||s.sid||','||s.serial#||''''||' immediate;' c50
  FROM v$session s, v$process p
WHERE s.sid in (
        SELECT sid
          FROM v$mystat
WHERE rownum  = 1)
   AND s.paddr = p.addr;

$ ps -ef | grep 1250[78]
oracle   12507 12503  0 09:20 pts/7    00:00:00 /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus
oracle   12508 12507  0 09:20 ?        00:00:00 oraclebook (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

--//可以发现使用本地连接通过beq协议连接,sqlplus的进程号12507,再通过这个进程连接数据库,对应进程号是12508.(注意其父进程是12507)

3.测试使用网络连接(注在本机):

sqlplus scott/book@book

SCOTT@book> @ &r/spid

       SID    SERIAL# PROCESS                  SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ ------ ------- ---------- --------------------------------------------------
        54        613 12601                    12603       28        223 alter system kill session '54,613' immediate;

--//可以发现进程号是12601,PROCESS=12601.

$ ps -ef | grep 1260[13]
oracle   12601 12597  0 09:34 pts/7    00:00:00 /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus
oracle   12603     1  0 09:34 ?        00:00:00 oraclebook (LOCAL=NO)

--//可以发现使用TCP连接,sqlplus的进程号12601,通过监听连接数据库,连接数据库的进程号是12508.(注意其父进程是1).

4.测试从client windows连接数据库.

sqlplus scott/book@192.168.100.78:1521/book:DEDICATED

SCOTT@192.168.100.78:1521/book:DEDICATED> @ &r/spid
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
        54        629 7132:3244                DEDICATED 12810       28        230 alter system kill session '54,629' immediate;

D:\tools\sysinternals>tasklist /FI "PID eq 7132"

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
sqlplus.exe                   7132 Console                    1     17,952 K

--//3244来自那里呢?实际上tid,我对windows不是非常熟悉.
--//windows的工具包sysinternals中procexp可以找到对应tid.具体细节略.
$ ps -ef | grep   1281[0]
oracle   12810     1  0 10:03 ?        00:00:00 oraclebook (LOCAL=NO)

5.测试从client windows连接使用共享模式.

sqlplus scott/book@192.168.100.78:1521/book:shared

SCOTT@192.168.100.78:1521/book:shared> @ &r/spid
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
       261          3 3140:4464                SHARED    5752        20          1 alter system kill session '261,3' immediate;

D:\tools\sysinternals>tasklist /FI "PID eq 3140"
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
sqlplus.exe                   3140 Console                    1     17,988 K      

$ ps -ef | grep   575[2]
oracle    5752     1  0 Nov01 ?        00:00:00 ora_s000_book

--//进程号5752对应是ora_s000_book.

时间: 2024-09-20 12:30:42

[20171102]视图v$session中process字段含义的相关文章

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

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

pb中这个字段的含义是什么啊

问题描述 pb中这个字段的含义是什么啊 这几句话的含义是什么啊 string ls_sf ls_sf = this.getitemstring(row,'c_prvo_no') stru_parm lstru_p lstru_p.any_parm[1]=ls_prvo_no 解决方案 单纯贴出一点来,只能说,实在赋值... 解决方案二: //定义变量 string ls_sf //从数据窗口里取出c_prvo_no这个字段的值 ls_sf = this.getitemstring(row,'c_

在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高性能SQL引擎剖析:SQL优化与调优机制详解》一2.5 执行计划中其他信息的含义

2.5 执行计划中其他信息的含义 通过DBMS_XPLAN输出执行计划,除了计划本身外,还可以获得一些其他信息帮助我们进一步分析执行计划及语句性能. 2.5.1 查询块和对象别名 在使用DBMS_XPLAN显示执行计划时,选择'ADVANCED'预定义格式作为参数或者加入'ALIAS'控制字符串,可以在输出中看到以下内容: Query Block Name / Object Alias (identified by operation id): -------------------------

mysql 视图怎么增加自增字段

问题描述 mysql 视图怎么增加自增字段 mysql 从两张不含自增字段的表格生成一张含自增字段视图,应该怎么实现啊,各位大神. 简单来说,视图可以新增原表格没有的字段吗? 解决方案 用行号http://www.cnblogs.com/xinlei/archive/2011/12/16/2290349.html 解决方案二: mysql 实现行号的方法--如何获取当前记录所在行号 解决方案三: MySQL的自增字段MySQL中设置自增字段如何用mysql增加字段

oracle视图V$CLIENT_STATS中查不到数据

问题描述 oracle视图V$CLIENT_STATS中查不到数据 想试试DBMS_MONITOR.CLIENT_ID_STAT_DISABLE包的作用,需要填写一个client标识符,需要用到 V$CLIENT_STATS视图中的CLIENT_IDENTIFIER字段的数据,但是,在查询V$CLIENT_STATS时没有任何数据,请问如何做才可以使这个视图中显示一些数据? 解决方案 [转]oracle 动态性能(V$)视图oracle v$视图

执行计划中各字段各模块描述

      在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段.模块显示或不显示,下面的描述给出了执行计划中各字段的含义以及各模块的描述.        有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述        有关由SQL语句来获取执行计划请参考:     使用 EXPLAIN PLAN 获取SQL语句执行计划        有关使用autotrace来获取执行计划请参考:启用 AUTOTRACE 功能       有

高手来啊!怎么把一个非序列化的对象序列化然后保存到SESSION中!最好是C#代码!先谢谢大家了!

问题描述 高手来啊!怎么把一个非序列化的对象序列化然后保存到SESSION中!最好是C#代码!先谢谢大家了! 解决方案 解决方案二:既然是非序列化的,那么就不能通过序列化来处理对象,如果一定要存到Session中,可以把其主要的属性或字段存到Session中,等需要使用对象的时候,使用New建立新的对象,然后把Session中的值再设置到新的对象中,以此来使用对象.解决方案三:序列化对象了,你就得到一个保存文件地址,然后在Session里面象保存字符串那样保存这个地址就行了.在需要的地方载入在个

spring mvc-想把用户名存在session中 在方法中加request参数后运行报错 求指教~

问题描述 想把用户名存在session中 在方法中加request参数后运行报错 求指教~ 我用的是spring+hibernate~ 修改后: public class LoginAction extends SimpleFormController{ private Login login; private String viewPage; private String successPage; //实现onSubmit()方法 public ModelAndView onSubmit(Ob