Версия Oracle 12 c Выпуск Enterprise Edition 12.1.0.2.0
Текущий процесс.
База данных 1 У меня есть два курсора SQL запросы (которые объединяют несколько таблиц), которые в основном записывают в плоский файл (оба файла имеют одинаковый формат файла), используя PL / SQL для l oop. Несколько файлов плоских файлов создаются и записываются в каталог назначения.
База данных 2 берет плоские файлы из каталога назначения и обрабатывает каждый плоский файл в своей системе.
Запись числа больших файлов в каталог из одной базы данных, а затем для обработки во второй базе данных, я уверен, что это отнимает много времени, и компания ищет способы улучшить эту производительность. Этот процесс происходит один раз в месяц, и создается от 200 до 1500 файлов. Каждый файл может иметь размер от 100 до 5 гигабайт.
Новый процесс.
Меня попросили найти новое решение для ускорения этого процесса.
Следующие вопросы, с которыми я сталкиваюсь при разработке решения, следующие: а) Это быстрее? б) это можно сделать в PL / SQL script c) С какими проблемами я мог бы столкнуться, если бы попробовал это? d) Есть ли лучшее решение? e) Есть ли проблемы с производительностью / системой при таком подходе?
1. Переносимые таблицы - можно ли создать промежуточную таблицу в базе данных 1, где я собираю все данные из обоих запросов SQL в одну промежуточную таблицу. Затем я использую табличное пространство, в котором существует промежуточная таблица, и переношу это табличное пространство в базу данных 2, чтобы использовать его для обработки в базе данных 2. Затем через неделю табличное пространство будет удалено из базы данных 2. Я очищаю промежуточную таблицу из базы данных 1 и через неделю.
2. DataPump - я довольно не уверен насчет datapump, когда вы записываете экспортирующий файл DMP (возможно, с помощью запроса для выбора необходимых данных) в каталог, а затем подбираете этот файл DMP для импорта в новую базу данных. создаст промежуточную таблицу в новой системе, готовую к обработке в основных таблицах. Это может быть большой файл дампа, это будет проблемой?
3. Золотые Ворота - Я не уверен в Золотых Воротах, разве это не просто инструмент репликации. Не уверен, где go с этим инструментом.
4. Представление - создайте представление для базы данных 1 (это может быть materlized представление?), Которое будет содержать оба запроса SQL (UNION ALL), вторая база данных вызовет это представление, используя ссылку на базу данных для обработки данных во вторую базу данных. Будут ли какие-либо проблемы с чтением этих данных по сети?
Какие-нибудь идеи были бы хорошими? Кто-нибудь имел опыт работы с вышесказанным? Есть ли лучшее решение, чем вышеупомянутое мне нужно посмотреть?
спасибо Шон