Недавно я обнаружил ошибку в клиентском API. Он отправляет страницы уникальных записей на основе временных меток. Каждый так часто он отправляет ту же самую точную запись в конце предыдущей страницы и начинает следующую страницу.MS SQL Server - как игнорировать/удалять очень редкие повторяющиеся строки во время вставки таблицы
Я работал в соответствии с предположением, что дубликатов не было (это журнал событий в конце концов). Поэтому я делал чистые вставки, вместо того чтобы переживать проблему обновления или какой-то «дубликат».
Мой вопрос --- какой лучший способ избавиться от этих дубликатов, а затем MS SQL спокойно отбросить эти дубликаты записей при вставке? Они обязательно вставлены ПОСЛЕ того, как оригинал был написан в транзакции. Эти дубликаты случаются раз каждые 10 000 строк - так что-то очень свет памяти будет замечательным.
Единственная отличительная часть записей - «идентификатор партии ETL» - все остальное идентично. В противном случае каждая запись должна иметь уникальный «идентификатор события». Если я сделаю этот идентификатор события уникальным индексом/ключом, могу ли я каким-то образом заставить MS SQL сбрасывать любые дубликаты ключей? Или приложение выведет сообщение об ошибке и остановится во время запроса?
правильно, если ignore_dup_key не рекомендуется, какая у меня альтернатива? предотвратить дублирование ключей от доступа к базе данных? Я думаю, что процесс, на любом языке программирования или даже поиск обновлений с БД, резко замедлит процесс. – user45867
Что делать, если вы отслеживаете последнюю запись предыдущей страницы и сравниваете ее с первой записью текущей страницы? Если вы уверены, что шаблон всегда «последняя запись страницы дублируется первой записью следующей страницы». –
Вы также можете попросить владельца API-клиента исправить свою ошибку :) Они могут не знать, что это существует, или у них может быть решение/обход. –