Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Причины ORA-01000 maximum open cursors exceeded  [new]
niltas
Member [заблокирован]

Откуда: 15 минут пешком от метро
Сообщений: 290
Как я понимаю причин , исключая баги, есть 2 основных.
1. Пользователь работает через какое-то API и просто тупо не закрывает свои курсоры. Здесь очевидно решаемо.
2. Работает здоровый PL/SQL код на сервере и кол-во кешируемых и открытых курсоров движком PL/SQL неожиданно превышет параметр open_cursors. Я с таким сам не сталкивался, но на обсуждения наталкивался. Мне не совсем понятно , почему в этом случае PL/SQL игнорирует параметр open_cursors? Ноги с головой не подружились в очередной раз? ХОТЯ, в доке написано
в частности

OPEN_CURSORS specifies the maximum number of open cursors (handles to private SQL areas) a session can have at once. You can use this parameter to prevent a session from opening an excessive number of cursors. This parameter also constrains the size of the PL/SQL cursor cache which PL/SQL uses to avoid having to reparse as statements are reexecuted by a user.
12 фев 08, 15:12    [5278074]     Ответить | Цитировать Сообщить модератору
 Re: Причины ORA-01000 maximum open cursors exceeded  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
niltas
Как я понимаю причин , исключая баги, есть 2 основных.
1. Пользователь работает через какое-то API и просто тупо не закрывает свои курсоры. Здесь очевидно решаемо.
2. Работает здоровый PL/SQL код на сервере и кол-во кешируемых и открытых курсоров движком PL/SQL неожиданно превышет параметр open_cursors. Я с таким сам не сталкивался, но на обсуждения наталкивался. Мне не совсем понятно , почему в этом случае PL/SQL игнорирует параметр open_cursors? Ноги с головой не подружились в очередной раз? ХОТЯ, в доке написано
в частности

OPEN_CURSORS specifies the maximum number of open cursors (handles to private SQL areas) a session can have at once. You can use this parameter to prevent a session from opening an excessive number of cursors. This parameter also constrains the size of the PL/SQL cursor cache which PL/SQL uses to avoid having to reparse as statements are reexecuted by a user.


Ух, и мне бы такой травы кило..

Ищите течь - найдете..
12 фев 08, 15:20    [5278183]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить