Сейчас я ищу способ оптимизировать процесс,
который занимает много времени.
- Необходимо отфильтровать около 270 текстовых файлов.
- В каждом файле около 70-150 тысяч строк.
- Справочная таблица обычно содержит около 16 млн записей в Oracle 10g.
- Процесс выполняется каждый час.
- Существует вероятность того, что 9 экземпляров этого процесса могут быть запущены почти
одновременно.
Что я сейчас делаю, так это помещаю справочную таблицу в файл, копирую ее
в хэш, делаю то же самое с текстовым файлом, затем сопоставляю хэш-ключ.
Любая запись в текстовом файле, найденная в список ссылок будет удален.
Это повторяется для всех 270 файлов, однако часть буферизации выполняется
только один раз в начале.
Однако этот подход потребляет от 300 МБ до 500 МБ ОЗУ, а с возможностью
одновременного запуска нескольких экземпляров этого процесса
это кошмар для нашего сервера.
Любые идеи, как это сделать лучше?