У меня есть несколько больших таблиц (миллионы строк). Я постоянно получаю файлы, содержащие новые строки для добавления в эти таблицы - до 50 миллионов строк в день. Примерно 0,1% строк, которые я получаю, представляют собой дубликаты строк, которые я уже загрузил (или дубликаты в файлах). Я бы хотел, чтобы эти строки не загружались в таблицу.Как предотвратить загрузку повторяющихся строк в таблицу Oracle?
В настоящее время я использую SQL Loader, чтобы иметь достаточную производительность, чтобы справиться с моим большим объемом данных. Если я сделаю очевидный шаг и добавлю уникальный индекс в столбцы, которые goven ли дубликат, или нет, SQL Loader начнет сбой всего файла, который содержит дублируемую строку, тогда как я хочу только предотвратить дублирование строки сам загружается.
Я знаю, что в SQL Server и Sybase я могу создать уникальный индекс с свойством «Игнорировать дубликаты», и если я тогда использую BCP, повторяющиеся строки (как определено этим индексом) просто не будут загружены.
Есть ли способ достичь такого же эффекта в Oracle?
Я не хочу удалять повторяющиеся строки после их загрузки - для меня важно, чтобы они никогда не загружались в первую очередь.
Как вы загружаете файлы - SQL * Loader/Data Pump? – dpbradley
В настоящее время используется SQL * Loader. Из-за большого объема данных производительность важна для меня. – user181903