У нас есть таблица в базе данных Oracle, которая действует как посредник между двумя системами. Система A выполнит массовую вставку в таблицу, фиксируя каждые 50 000 строк. Система B будет продолжать запрашивать запись в таблице и, если она есть, выдаст оператор SELECT .. FOR UPDATE
для обработки записей (система B многопоточная).
Проблема в том, что существует вероятность того, что система А по-прежнему массово вставляет данные, когда система Б запрашивает таблицу. Это может привести к тому, что система B получит неполный набор данных для обработки.
Можем ли мы в любом случае узнать, остановилась ли массовая вставка? Если мы хотим отслеживать, выполняется ли какая-либо insert
активность на столе, возможно ли это? К сожалению, у нас нет контроля над тем, как работает Система А, поэтому мы не можем заставить ее послать нам какой-либо «конечный» сигнал.
Любые комментарии приветствуются. Спасибо.
v$sqlarea
, но данные в этом списке удаляются с использованием алгоритма «наименьшего использования», верно? Я могу определить, прекратила ли Система А вставку данных из нее? - person ipohfly   schedule 14.04.2015