Что если я не закрою явно sys_refcursor в oracle? - PullRequest
0 голосов
/ 19 августа 2010

Что если я не закрою явно sys_refcursor в oracle?это даст проблему с открытым курсором и приведет к низкой скорости приложения ??

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Он должен быть удален / автоматически закрыт после выхода из области видимости.

Однако, что означает «вне области», может варьироваться в зависимости от технологии клиента (JDBC, PL / SQL и т. Д.). Например, в PL / SQL это может зависеть от того, содержится ли курсор в качестве переменной пакета или локальной переменной.

Как следует из ответа Дейва, каждый открытый курсор будет считаться с общим пределом - в конечном итоге вы достигнете этого предела и получите ошибку приложения.

Я бы сказал, что передовой практикой является явное закрытие, когда вы закончите.

1 голос
/ 19 августа 2010

Пока курсор открыт, он будет считаться с пределом, установленным OPEN_CURSORS, поэтому это может вызвать проблемы, если вы повторно открываете курсоры и не закрываете их.

Он также будет продолжать потреблять некоторыепамять пока не закрыта.Я не думаю, что это может значительно снизить производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...