Processes, sessions and open_cursors

来源:互联网 发布:太空地图软件 编辑:程序博客网 时间:2024/03/28 21:42

Processes, sessions and open_cursors

Hi,

when you got this error always check trace file. In my trace file was this error:

ORA-00020: maximum number of processes (2000) exceeded

So what does mean?

1) This error is related to parameter processes.

SQL> show parameter processes

NAME                                 TYPE        VALUE
————————————
processes                            integer     2000

–> It it max value

current value:

select count(*) from v$process;

COUNT(*)
———-
1122

==> It is ok now. Parameter processes set max value for operating system processes

Parameter Sessions set max. value for session in oracle and should be calculate from parameter processes.

Session=(processes * 1.1 ) +5

In our case (2000 * 1.1) +5 = 2205

SQL> show parameter sessions

NAME                                 TYPE        VALUE
———————————— ———– ——————————
sessions                             integer     2205

–> current number of sessions

select count(*) from v$session;

COUNT(*)
———-
1122

==> we are under limit and this is ok.

Other parameter could be open_cursors. This parameter set max. number of open cursors per one session.

SQL>show parameter cursors

NAME                                 TYPE        VALUE
———————————— ———– ——————————
open_cursors                         integer     500

–> This mean that each session could have 500 open cursor. Together it is 2205 * 500 = 1102500 cursors.

Now we have open

SQL>select count(*) from v$open_cursor;

COUNT(*)
———-
18319

What value set to parameter open_cursors?

We can calculate 18319 / 2205 = 8.3

–> we can set it to 50 which is default value