会话断开后 v$session 记录不删除

Chiff 2011-05-06 03:04:10
如题,
我用我的机器上的PLSQL连接服务器,连上后查
select * from v$session
有记录。
然后正常关闭后,
select * from v$session
中的记录会被删除。

但是,如果我连上后,直接将网线拨掉,
然后一会儿重新插上再查
select * from v$session
发现记录并不会被删除。


所以我现在根本不知道实际在线的会话有多少个。
有人说 status 为 INACTIVE 表示为不在线的会话,我查了一下并非这样。因为我试过很多次,正常使用中的进程status也会有inactive的情况。
...全文
213 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2011-05-06
  • 打赏
  • 举报
回复
ORACLE建立会话是一个比较消耗资源的操作,处于inactive的会话几乎不用占多少资源,因此oracle此时保留session而不是立即释放掉是合理的。所以,在尽可能的情况下,将processes参数调得大一些。而sessions=processes*1.1+5,oracle会自动增大sessions数。

minitoy 2011-05-06
  • 打赏
  • 举报
回复
没有太好的办法,如果有的话,v$session里的数据就会正常了[Quote=引用 2 楼 chiff 的回复:]
那有什么办法能得获得真正在线的会话清单吗?
[/Quote]
Chiff 2011-05-06
  • 打赏
  • 举报
回复
那有什么办法能得获得真正在线的会话清单吗?
minitoy 2011-05-06
  • 打赏
  • 举报
回复
inactive只是表示该会话暂时无动作.
正常断开是有disconnect的过程,你拔网线自然就不会有disconnect的信息发回到数据库服务器,相应的session信息也不会被删除.

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧