ArcGIS не требует изменения вашего экземпляра Oracle по сравнению с конфигурацией по умолчанию для запуска. Однако для больших систем вам может понадобиться вносить изменения в конфигурацию экземпляра Oracle.
При каждом запуске Oracle считываются параметры инициализации либо из файла init.ora, либо из файла параметров сервера spfile.ora. Оба файла определяют характеристики Oracle, но управляются они по-разному.
Файл init.ora расположен в директории или папке ORACLE_BASE/admin/<ORACLE_SID>/pfile. Обычно файлу инициализации экземпляра базы данных Oracle дается имя init.ora, но фактически для любого экземпляра этим файлом является init<oracle SID>.ora. Например, если системный идентификатор Oracle (SID) – GIS, то файлом init.ora для этого экземпляра будет initGIS.ora.
Изменение параметров с помощью команды ALTER SYSTEM автоматически отразится на файле параметров сервера, если экземпляр был запущен этим методом. Если экземпляр запускался с помощью файла init.ora, вам придется вручную отредактировать файл в текстовом редакторе, если вы хотите, чтобы применялись в большей степени измененные вами системные параметры.
Ниже приведены рекомендации для настройки параметров больших, интенсивно используемых баз геоданных в Oracle:
Параметры, влияющие на совместное использование памяти
В данном разделе описаны параметры, управляющие распределением совместно используемой памяти. Более подробно о параметрах инициализации Oracle см. в документации к вашей версии Oracle.
OPEN_CURSORS
Параметр инициализации Oracle OPEN_CURSORS определяет, сколько курсоров может быть одновременно открыто в одной сессии. Значение, предлагаемое по умолчанию, равно 300. При попытке сессии открыть новый курсор, когда уже открыто максимальное число курсоров, будет возвращена ошибка Oracle -1000. ArcGIS оставляет открытыми несколько запущенных курсоров для улучшения производительности. Если установлено недостаточно большое значение параметра OPEN_CURSORS, вы столкнетесь с описанной выше ошибкой. В документации Oracle говориться о том, что установление большого значения этого параметра допустимо. Поэтому вы можете установить очень большое значение параметра, например, 2000. В результате на практике устранятся все ограничения на количество открытых курсоров, что предохранит вас от мошеннических попыток потребления чрезмерного количества курсоров. Если же вы хотите вычислить потенциальное число курсоров открытой сессии, можно применить следующую, основанную на модели данных вашей организации, формулу. Помните, что ArcGIS будет открывать 80% от указанного числа курсоров, оставляя остальные 20% для процессов Oracle.
- Различные курсоры управления данными ArcGIS (20) +
- Различные безымянные блоки PL/SQL (20) +
- Пространственные запросы – потенциально 6 на класс объектов +
- Запросы файла журнала (11) +
- Различные запросы, использующиеся при редактировании версионных таблиц – 12 на версионную таблицу или слой
Таким образом, если вы редактируете 10 слоев в ArcMap, то у вас потенциально может быть открыт 231 курсор (20 + 20 + 60 + 11 + 120 = 231). В этом случае используемого по умолчанию значения 300 OPEN_CURSORS достаточно, т.к. ArcGIS будет держать открытыми 240 курсоров. Однако если курсоры часто заканчиваются, можно увеличивать значение параметра OPEN_CURSORS с шагом 50 или 100.
SESSION_CACHED_CURSORS
Oracle отслеживает выражения SQL, указанные для каждой сессии. Если он заметит, что одно и то же выражение было введено несколько раз, оно будет перемещено в кэш курсора, который будет открыт для его дальнейшего использования. Параметр SESSION_CACHED_CURSORS определяет, сколько курсоров допускается в кэше курсора. Значение по умолчанию параметра SESSION_CACHED_CURSORS зависит от версии Oracle. Если ваш экземпляр настроен на кэш с числом курсоров менее 50, увеличьте значение этого параметра до 50.
SESSIONS
Настройки базы геоданных допускают неограниченное число подключений. Если вы ожидаете большое количество конкурентных подключений к базе геоданных, следует соответственно изменить параметр Oracle SESSIONS.
Параметр SESSIONS прямо ограничивает общее число допускаемых Oracle одновременных сессий. Если значение по умолчанию не позволяет вам поддерживать необходимое число подключений к базе геоданных, увеличьте значение параметра до текущего числа подключений, увеличенного как минимум на 10% – для поддержки внутренних функций Oracle.
PROCESSES
Вы также можете ограничить число процессов, которые может создать Oracle, с помощью параметра PROCESSES. При использовании конфигурации выделенного сервера, этот процесс примерно соответствует числу одновременных сессий, поддерживаемых базой данных. Убедитесь, что значение параметра PROCESSES как минимум не меньше, чем ожидаемое число конкурентных подключений к базе геоданных, плюс 25 для стандартного числа фоновых процессов Oracle.
Параметр, влияющий на статистику Oracle
OPTIMIZER_MODE
Оставьте значение по умолчанию (all_rows) для параметра Oracle OPTIMIZER_MODE. Эта настройка является оптимальной для большинства баз геоданных и способствует улучшению общей масштабируемости вашей базы геоданных.
Параметры, влияющие на память
При установке параметров, влияющих на память следует быть очень внимательным. При установке значений этих параметров, выходящих за пределы физической памяти хост-компьютера, производительность сильно уменьшится. В общем виде, не следует выделять для баз данных более 70 процентов физической памяти сервера.
SHARED_POOL_SIZE
Разделяемый пул – компонент Oracle System Global Area (SGA), который содержит кэш данных словаря и кэш библиотеки. Кэш данных словаря включает информацию об объектах данных, свободном месте и правах доступа. Кэш библиотеки хранит последние используемые выражения SQL. Как правило, если размер разделяемого пула достаточно велик, чтобы соответствовать требованиям к ресурсам кэша библиотеки, то его также достаточно для хранения данных кэша словаря.
Базы геоданных могут использовать больший разделяемый пул, чем другие приложения Oracle. ArcGIS держит кэш SQL выражений в памяти клиентских приложений. Большой разделяемый пул позволяет держать открытыми больше курсоров, что позволяет уменьшить число операций управления курсором и увеличить производительность. Размер разделяемого пула определяется параметром SHARED_POOL_SIZE. Esri рекомендует вам устанавливать параметр SHARED_POOL_SIZE кратным 16 MБ, чтобы от принимался любой системой, поддерживаемой Esri, а также установить его значение большим 128 Мб:
shared_pool_size = 128,000,000
Базы геоданных с высокой активностью работы, поддерживающие нестабильную утилиту или редактирование участков, могут требовать, чтобы значение параметра было установлено большим 250 МБ.
Из трех буферов SGA именно разделяемый буфер является наиболее важным. Если SGA имеет максимальный размер, допустимый вашей физической памятью, уменьшите размер кэша буфера для вмещения большего разделяемого буфера.
Использование автоматического управления рабочей областью и разделяемой памятью
Следует воспользоваться преимуществами механизмов Oracle для автоматического управления рабочей областью и выделением памяти. Дополнительные сведения о настройке рабочей области и управлением памятью см. в Руководстве администратора баз данных Oracle для используемой версии Oracle.
Другие изменения
Не являясь параметром инициализации, директива менеджера ресурсов базы данных UNDO_POOL может быть установлена, чтобы позволить группе потребителей sde собрать значительное количество места для отмены операций сжатия.
Для этого вам нужно настроить группу потребителей для пользователя sde и изменить директиву UNDO_POOL, чтобы позволить неограниченному пулу отмены для этой группы потребителей.
UNDO_POOL определяет общее количество места для отмены, которое члены одной ресурсной группы могут одновременно использовать.
При редактировании версионной базы геоданных вам необходимо периодически осуществлять операцию сжатия, чтобы очистить старую информацию и упростить содержание базы геоданных. Если после последнего сжатия было внесено много изменений, новая операция компрессии может создать большие транзакции, требующие большого количества пространства для отмены. Если значение UNDO_POOL мало, операция сжатия может не удастся, что приведет к низкой производительности. По возможности, устанавливайте неограниченный пул отмены для группы потребителей пользователя sde. Иначе вам нужно будет отслеживать размер транзакций сжатия и выбирать подходящий вам размер пула отмены.