У меня около 2 миллионов строк данных, каждая строка с искусственным PK и два поля Id (так: PK, ID1, ID2). У меня есть уникальное ограничение (и индекс) для ID1 + ID2.
Я получаю два вида обновлений, каждый с отдельным ID1 для каждого обновления.
- 100-1000 строк абсолютно новых данных (ID1 новый)
- 100-1000 строк в значительной степени, но не обязательно полностью перекрывающихся данных (ID1 уже существует, возможно, новые пары ID1 + ID2)
Какой самый эффективный способ сохранить этот «набор»? Вот варианты, как я их вижу:
- Удалить все строки с ID1, вставить все новые строки (yikes)
- Запросить все существующие строки из набора новых данных ID1 + ID2, вставить только новые строки
- Вставить все новые строки, игнорировать вставки, которые вызывают уникальные нарушения ограничений
Есть мысли?