How to check the maximum number of allowed connections to an Oracle database?

SqlOracle

Sql Problem Overview


What's the best way, using SQL, to check the maximum number of connections that is allowed for an Oracle database? In the end, I would like to show the current number of sessions and the total number allowed, e.g. "Currently, 23 out of 80 connections are used".

Sql Solutions


Solution 1 - Sql

There are a few different limits that might come in to play in determining the number of connections an Oracle database supports. The simplest approach would be to use the SESSIONS parameter and V$SESSION, i.e.

The number of sessions the database was configured to allow

SELECT name, value 
  FROM v$parameter
 WHERE name = 'sessions'

The number of sessions currently active

SELECT COUNT(*)
  FROM v$session

As I said, though, there are other potential limits both at the database level and at the operating system level and depending on whether shared server has been configured. If shared server is ignored, you may well hit the limit of the PROCESSES parameter before you hit the limit of the SESSIONS parameter. And you may hit operating system limits because each session requires a certain amount of RAM.

Solution 2 - Sql

The sessions parameter is derived from the processes parameter and changes accordingly when you change the number of max processes. See the Oracle docs for further info.

To get only the info about the sessions:

    select current_utilization, limit_value 
    from v$resource_limit 
    where resource_name='sessions';

CURRENT_UTILIZATION LIMIT_VALUE


     		110	        792

Try this to show info about both:

    select resource_name, current_utilization, max_utilization, limit_value 
    from v$resource_limit 
    where resource_name in ('sessions', 'processes');

RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION LIMIT_VALUE


processes 96 309 500 sessions 104 323 792

Solution 3 - Sql

I thought this would work, based on 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

However, Justin Cave is right. This query gives better results:

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'

Solution 4 - Sql

Note: this only answers part of the question.

If you just want to know the maximum number of sessions allowed, then you can execute in sqlplus, as sysdba:

SQL> show parameter sessions

This gives you an output like:

    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

The sessions parameter is the one what you want.

Solution 5 - Sql

Use gv$session for RAC, if you want get the total number of session across the cluster.

Solution 6 - Sql

v$resource_limit view is so interesting for me in order to glance oracle sessions,processes..:

https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html

Solution 7 - Sql

select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNiklas GustavssonView Question on Stackoverflow
Solution 1 - SqlJustin CaveView Answer on Stackoverflow
Solution 2 - SqlFuePiView Answer on Stackoverflow
Solution 3 - SqlJosephStyonsView Answer on Stackoverflow
Solution 4 - SqlbotkopView Answer on Stackoverflow
Solution 5 - SqlTomView Answer on Stackoverflow
Solution 6 - Sqlfdominguez.bbddView Answer on Stackoverflow
Solution 7 - Sqlsaris mohammadView Answer on Stackoverflow