Снимок Oracle слишком старый и DBLINK

я осознаю

ORA-01555: слишком старый снимок: сегмент отката 234 с именем "_SYSSMU234_1378897836 $"

слишком маленький при выборе некоторых данных с помощью dblink в базе данных оракула.

select a,b from localtab a
union
select a,b from rmottab@remotedb;

Есть ли способ исправить эту ошибку?
У меня есть ситуация, когда нужно периодически получать эти данные.


person FIROZ K A    schedule 15.05.2015    source источник


Ответы (1)


По окончании извлечения данных необходимо закрыть курсор. Ваша проблема в том, что вы слишком долго держите курсор открытым. Для этого есть масса причин: - построчная обработка на стороне клиента. Потребуется вечность, чтобы закончить. (база данных ожидает доставки данных клиенту) Подсказка. Размер массива (fetchsize) установлен слишком низким. Размер массива 100-200 может ускорить процесс. - есть красивый вид, скрытый за "rmotab", возврат которого занимает> 30 минут, который сжигает процессор (логическое чтение)

В основном у вас есть следующие варианты:

  1. Ускорьте свой процесс. (завершите курсор (запрос) быстрее). Основная нагрузка.
  2. Запланируйте процесс, когда DML не выполняется.
  3. Материализованное представление (предварительная загрузка данных (только для чтения))
  4. Увеличьте UNDO.
person Bjarte Brandt    schedule 16.05.2015