У нас есть версионная база геоданных arcsde (arcgis 9.3.1 на oracle 10g) с довольно сложной моделью данных, которая включает в себя около 100 классов объектов и непространственных таблиц, геометрическую сеть и множество классов отношений.
Данные редактируются ежедневно 5 или 6 пользователями arcmap с использованием sde-версий. Кроме того, версии создаются автоматическими службами, которые взаимодействуют с другими бизнес-системами для редактирования в базе геоданных. Производительность запросов заметно снижается в течение дня, поэтому мы реализовали ночной сценарий для достижения полного сжатия. В случаях, когда выполняется относительно большое количество правок, система может стать непригодной для использования до полного сжатия.
Было высказано предположение, что oracle в том виде, в котором оно настроено, не может придумать достойных планов выполнения, когда сталкивается с этими изменчивыми дельта-таблицами. Это разумное объяснение? Какой подход должен быть предпринят, чтобы решить это?
Обновление в ответ на комментарии
- К концу дня дерево состояний очень линейное, с небольшим ветвлением.
- Мы сжимаем каждую ночь (получим полный компресс, удалив все версии).
- Бизнес-таблицы регулярно анализируются.
- Дельта-таблицы не анализируются. Они заблокированы (попытка проанализировать возвращает ошибку «Статистика объекта ORA-20005 заблокирована»). В схеме sde нет изменчивых таблиц - STATES, STATE_LINEAGES.