关于oracle的会话(session)问题

shuangxinlou 2002-04-15 04:26:37
我公司的数据库在运行一段时间后,在DBA studio 里,发现竟然有170多个会话,而且,我们的数据库运行得很慢?
谁能帮我解释一下关于会话和性能的关系吗?
...全文
334 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbit 2002-04-16
  • 打赏
  • 举报
回复
如果用户数很多,建议配置MTS,多线程服务器
shuangxinlou 2002-04-16
  • 打赏
  • 举报
回复
数据库运行一天以后发现有产生了许多没有释放掉的会话,即处于inactive状态下的会话是怎样产生的呢?
是数据库的设置问题,还是应用程序设计的缺陷呢?
feihong_xue 2002-04-16
  • 打赏
  • 举报
回复
是不是因为你以前重启数据库的时候,采用的是abort模式,导致会话资源没有释放掉呢?以前我们也遇到过这个问题?正常启动以后就好了!
ykliu1 2002-04-15
  • 打赏
  • 举报
回复
楼上的观点,不太准确吧.正因为专用进程(DEDICATED SERVER)方式占用太多系统资源,如果在内存较少,连接数较多,而且操作系统(如NT)允许的情况下,应该采用MTS方式,
这样能够充分利用系统资源,调整负载平衡,减少不必要的SERVER PROCESS....
ykliu1 2002-04-15
  • 打赏
  • 举报
回复
如果在NT环境下,使用MTS(MULTITHREADED SERVER)可能会使系统更好的使用系统资源,否则在8i中,会话数是最终是有初始化参数PROCESS决定的.
mycode 2002-04-15
  • 打赏
  • 举报
回复
如果你的Oracle数据库采用的是多进程方式,那么会话占用的是操作系统提供的内存空间,对Oracle数据库的影响较小。如果采用的是多线索的方式,则对Oracle数据库的影响较大。
FangQ_78 2002-04-15
  • 打赏
  • 举报
回复
绘画和性能是有关系的,当然这是指活动会话!因为每个会话都要占用一定的系统资源。Oracle8i以上的版本增加了系统自动调整会话的功能,即一个会话超过多长时间没有激活,Oracle就自动将其Kill掉。当然也可以手工。
具体的步骤为:
1.查询会话情况
Select * from V$session
例如:
结果为:
SID SERIAL# USERNAME
---------- ---------- ------------
1 1
2 1
3 1
4 1
5 1
6 1
7 1
11 639 SYSTEM
12 1463 BWG
2.Kill会话
alter system kill session 'SID,SERIAL#'
例如:要kill用户bwg的会话
alter system kill session '12,1463';
xg_delayth 2002-04-15
  • 打赏
  • 举报
回复
如果是三层结构,在程序中没有释放,打开的连接未关闭则相应的session
不结束。鬼知道java的回收机制怎么回事,必须要显示的close()。此时不用
重新启动oracle,重启web服务器就可以了。
Michaelyfj 2002-04-15
  • 打赏
  • 举报
回复
你的session大部分应该是处于InActive状态,这是因为有些应用程序退出后没有及时释放的问题,重新启动Oralce即可释放掉。
如果使用三层模式,这种情况应该不存在的,应用程序退出后立马就释放
hrb_qiuyb 2002-04-15
  • 打赏
  • 举报
回复
会话与性能的关系在一定量的范围内没什么太大的联系,我的数据库的session正常来说在1200左右。
数据库运行一段时间后,你应该将它重启一次,释放一下资源及释放一些死进程。
与数据库的性能关系最大是SGA区相关的一些变量,如shared_pool,一般sga区可以达到物理内存的一半
与数据库的性能相关的还有其它一些因素,如应合理的建一些索引,索引与表应分别存储等等许多方面。
数据库性能优化是一门学,喜欢的话可以看一下机械的<oracle优化技术>

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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