Ada beberapa batasan berbeda yang mungkin ikut berperan dalam menentukan jumlah koneksi yang didukung database Oracle. Pendekatan paling sederhana adalah dengan menggunakan parameter SESSIONS dan V $ SESSION, yaitu
Jumlah sesi yang diizinkan database dikonfigurasi
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.
v$session
view. You'd need to ask your DBA to grant you that privilege. Most likely, you'd want theselect any dictionary
privilege though theselect_catalog_role
role or a direct grant on just that object would also work.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';
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');
sumber
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'
sumber
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.
sumber
Use gv$session for RAC, if you want get the total number of session across the cluster.
sumber
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
sumber
select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'
sumber