На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS

Дорогие друзья! Поздравляем вас с Новым 2018 годом!

Всем удачи, успеха и благополучия!
В новом году ожидаем новых рекордов при подсчёте количества ёлочек на экране ;)


msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF, JoeUser
  
> Oracle, Cursors, базовые настройки, Как избежать исключение ORA-01000: количество открытых курсоров превысило допустимый максимум
    Добрый день.

    Разрабатываю ПО, которое основную работу проводит с сетевыми устройствами и по столько по сколько использует базу oracle(требование заказчика) для хранения некоторой информации об устройствах и изображений, полученных с устройств. До этого всегда использовал для таких целей MySQL и с Oracle не знаком. С подключением к базе(пищу на Visual Studio 2017 и использую OracleClient) и отправкой запросов я разобрался. Запросы не мудреные, в основном SELECT'ы при загрузке данных при старте и INSERT'ы при записи состояний в базу и записи изображений в BLOB.
    Oracle скачал и установил с офф сайта, последнюю версию.
    Но при работе с базой возникает ошибка "ORA-01000: количество открытых курсоров превысило допустимый максимум".

    Отсюда вопросы:
    1) Есть ли ограничения в той версии Oracle, которая доступна на сайте.
    2) Какие значения задать для processes и open_cursors(значение sessions я вообще не нашел в init.ora), возможно еще какие-то значения нужно изменить?
    3) Как избежать накопления неявных открытых курсоров или как закрывать поле каждого запроса

    Заранее прошу прощение, если что-то не так написал, так как не имею опыта работы с Oracle. Если нужны какие-то примеры запросов или кода могу привести. Заранее скажу, что будет около 300 потоков(по 1 на каждое устройство), каждый раз в секунду выполняет 1 UDPATE (записывает состояние - около 12 полей) и возможно 1 INSERT, если есть необходимость записать изображение. Сейчас работает только один поток, но проблема уже возникает.
      Цитата alex.styopin @
      1) Есть ли ограничения в той версии Oracle, которая доступна на сайте.

      На сайте триал версия?
      Цитата alex.styopin @
      2) Какие значения задать для processes и open_cursors(значение sessions я вообще не нашел в init.ora), возможно еще какие-то значения нужно изменить?

      Какое значение OPEN_CURSOR (по умолчанию 50)?
      И что имеем в SESSION_CACHED_CURSOR(0) они не связаны, но все же.

      Добавлено
      ExpandedWrap disabled
        alter system set open_cursors = 1000
      Цель - ничто , процесс - все.
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script Execution time: 0,0647 ]   [ 15 queries used ]   [ Generated: 20.01.18, 14:32 GMT ]