v$process中的spid和addr的关系

[复制链接]
查看11 | 回复4 | 2011-11-1 16:25:22 | 显示全部楼层 |阅读模式
进行了2次会话,发现同一个连接上PADDR 是相同的,而SPID是不同的。
不知道这2者有什么关系?
[oracle@node ~]$ sqlplus u01/oracle
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 5 21:35:03 2011
Copyright (c) 1982, 2005, Oracle.All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> set line 120
select a.username,a.sid,a.serial#,server,spid,paddr,a.status
from v$session a
join v$process b
on a.paddr=b.addr
5where a.username='U01';
USERNAMESID
SERIAL# SERVERSPID
PADDRSTATUS
------------------------ ---------- ---------- --------- ------------ -------- --------
U01
145
271
DEDICATED 29438
2C21B254ACTIVE
SQL> disconnect
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> conn u01/oracle
Connected.
select a.username,a.sid,a.serial#,server,spid,paddr,a.status
from v$session a
join v$process b
on a.paddr=b.addr
5where a.username='U01';
USERNAME
SID
SERIAL#
SERVERSPID
PADDRSTATUS
------------------------------ ---------- ---------- --------- ------------ -------- --------
U01
145
273
DEDICATED 29439
2C21B254 ACTIVE
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
SPID是物理的连接ID就是你ps看到的
而PADDR是专用服务器的进程地址
你disc的操作
实际上只是逻辑上断开了连接,物理还是连着的
所以你下次再连的时候进程地址还是一样的
SPID是每次连接会分配新的,SID有时候会一样,有时候不会
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
专用服务器的进程地址(PADDR)和进程ID(SPID)没有关系么?
还是这2个概念理解的不对?
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
去官方文档里查下 v$process 就明白了。
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
我觉得是这样~地址是不会改变的~每次连接的号码是可变的
其实与其纠结于这个号码~不如深入研究一下oracle的物理连接和逻辑会话的区别
以及不同连接方式对数据库的影响
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行