使用SQL检查Oracle数据库允许的最大连接数的最佳方法是什么?最后,我想显示当前会话的数量和允许的总数量,例如“目前,80个连接中有23个被使用”。
发布于 2008-10-02 13:53:36
在确定Oracle数据库支持的连接数量时,可能存在一些不同的限制。最简单的方法是使用会话参数和V$SESSION,即
数据库配置为允许的会话数
SELECT name, value
FROM v$parameter
WHERE name = 'sessions'
当前活动的会话数量
SELECT COUNT(*)
FROM v$session
但是,正如我所说的,在数据库级别和操作系统级别都有其他潜在的限制,这取决于是否配置了共享服务器。如果忽略共享服务器,则在达到会话参数的限制之前,很可能会达到进程参数的限制。而且您可能会遇到操作系统的限制,因为每个会话都需要一定数量的RAM。
发布于 2008-10-02 13:52:43
我认为这是可行的,基于this source。
SELECT
'Currently, '
|| (SELECT COUNT(*) FROM V$SESSION)
|| ' out of '
|| DECODE(VL.SESSIONS_MAX,0,'unlimited',VL.SESSIONS_MAX)
|| ' connections are used.' AS USAGE_MESSAGE
FROM
V$LICENSE VL
然而,贾斯汀·凯夫是对的。此查询可提供更好的结果:
SELECT
'Currently, '
|| (SELECT COUNT(*) FROM V$SESSION)
|| ' out of '
|| VP.VALUE
|| ' connections are used.' AS USAGE_MESSAGE
FROM
V$PARAMETER VP
WHERE VP.NAME = 'sessions'
发布于 2014-06-16 16:10:49
注意:这只回答了问题的一部分。
如果只想知道允许的最大会话数,那么可以在sqlplus中以sysdba的身份执行:
SQL> show parameter sessions
这将为您提供类似如下的输出:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
sessions integer 248
shared_server_sessions integer
sessions参数是您想要的参数。
https://stackoverflow.com/questions/162255
复制相似问题