arcgis ar c py добавить пространственный индекс вызывает ошибку открытого курсора - PullRequest
0 голосов
/ 14 июля 2020

При выполнении перестроения индекса с использованием API (https://desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/add-spatial-index.htm) я столкнулся с этой ошибкой.

проверил эту ссылку: http://www.dba-oracle.com/t_open_cursors.htm

в нем говорится: если вы установите слишком большое значение open_cursors, вы рискуете прервать выполнение задачи с ошибкой ORA-01000

Теперь, проверяя базу данных, я вижу значение параметра open_cusrors = 2000 (с помощью SELECT * FROM v $ параметр WHERE name = 'open_cursors';)

Не уверен, что 2000 слишком велико и вызывает сбой; если я правильно понял проблему, нам нужно «увеличить» настройку открытого курсора, чтобы избежать сбоя - не так ли? Не уверен, почему Том говорит, что если вы установите слишком высокое значение, произойдет сбой!

Это вызывает проблему?

1 Ответ

1 голос
/ 14 июля 2020

Параметр open_cursors - это регулятор, блок, который предотвращает использование неконтролируемыми задачами слишком большого объема ОЗУ кеш-памяти библиотеки. Любой сеанс может выполнять множество SQL операторов, а параметр open_cursors управляет общим количеством открытых курсоров для любого данного сеанса.

Значение определяется использованием вашего приложения. Вам необходимо определить, нужно ли вам увеличить это значение. На самом деле 2000 является высоким (значение по умолчанию - 300).

Использование этого запроса для отслеживания использования вашего приложения

select a.value, b.name
from v$mystat a, v$statname b
where a.statistic# = b.statistic#
and a.statistic#= 3

Не используйте v $ open_cursors, это может ввести в заблуждение - это курсоры, которые были открыты в какой-то момент и могут (а могут и не оставаться) все еще открытыми. Это полезно для отслеживания утечек курсора, но оно показывает вам больше, чем просто "действительно открытые" курсоры. плохой дизайн приложения.

...