Удаление старых записей во время массовой загрузки SQL - PullRequest
0 голосов
/ 18 сентября 2009

Я ищу лучшие практики и идеи для управления данными в таблице базы данных во время массовой загрузки данных. Я думаю, что было бы проще начать с примера:

Предположим, что рассматриваемая таблица базы данных содержит следующие записи:

id | name      | ...
 1 | company A |
 2 | company B |
 3 | company C |

Затем я предпочитаю массово обновить эту таблицу новым файлом данных, который содержит информацию только для компаний A и C с пониманием, что компания B больше не является желаемой точкой данных.

Итак, мой вопрос заключается в следующем: я использую метод upsert для управления точками данных, перечисленными в файле данных, но как эффективно удалить непредставленную точку данных из базы данных (например, компания B)? Следует ли отслеживать метки времени и удалять результаты старше, чем время начала загрузки? Или я должен просто сбросить всю таблицу и снова заполнить ее (за счет управления индексами)? У последнего есть недостаток, заключающийся в том, что таблица становится бесполезной во время загрузки, но у первого есть проблемы с параллелизмом и блокировкой. Мысли?

1 Ответ

2 голосов
/ 18 сентября 2009

Я помещаю данные в рабочую таблицу, а затем использую код sql для вставки или обновления только тех записей, которые мне нужны, вместо массовой вставки в рабочую таблицу.

Извините, что неправильно понял, вы хотите знать, как избавиться от ненужных долгов? Снова массовая вставка в рабочую таблицу, затем присоединение к этой таблице, чтобы определить, какие записи больше не нужны, и удалить их с помощью оператора delte.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...