0

什么是空闲数据库会话?在终止空闲的数据库会话之前,我们必须考虑哪些因素?我们什么时候可以终止它?

4

1 回答 1

0

空闲数据库会话是已连接但用户有一段时间没有做任何事情的会话。此类连接的会话仍会消耗内存等资源。

默认情况下,允许的空闲时间是无限的:

select * from dba_profiles
where resource_time = 'IDLE_TIME';

DBA 可以创建配置文件来定义设置的空闲时间限制。分配该配置文件的用户将被限制在该空闲时间。在那之后的某个时间,PMON 将狙击会话:会话仍将连接,但下次用户尝试执行某项操作时它将断开连接。

如果您的数据库确实有非默认 IDLE_TIME,那么非活动会话将永远保持。除非你有很多,否则这可能不会成为问题,即使那样,它也很可能是用户培训问题(一旦你完成了任何工作,就断开你的 IDE)或应用程序连接中的错误模块。

要检查您是否有太多的长期空闲会话,您可以运行如下查询:

select program, osuser, user, logon_time, last_call_et, sid, serial#
from v$session
where status = 'INACTIVE'

感兴趣的列是last_call_et自用户上次在该会话中执行任何操作以来的秒数。如果last_call_et是一个很大的数字(您的里程会有所不同),那么您可能需要考虑剔除该会话。但实际上只有在您需要释放一些资源时才会打扰。

于 2017-03-08T16:27:48.653 回答