Я ежедневно получаю большой список номеров текущих счетов и храню их в базе данных. Моя задача - найти добавленные и освобожденные учетные записи из каждого файла. Прямо сейчас у меня есть 4 таблицы SQL (AccountsCurrent, AccountsNew, AccountsAdded, AccountsRemoved). Когда я получаю файл, я полностью добавляю его в AccountsNew. Затем выполните следующие запросы, чтобы найти, какие из них мы добавили и удалили.
INSERT AccountsAdded(AccountNum, Name) SELECT AccountNum, Name FROM AccountsNew WHERE AccountNumber not in (SELECT AccountNum FROM AccountsCurrent)
INSERT AccountsRemoved(AccountNum, Name) SELECT AccountNum, Name FROM AccountsCurrent WHERE AccountNumber not in (SELECT AccountNum FROM AccountsNew)
TRUNCATE TABLE AccountsCurrent
INSERT AccountsCurrent(AccountNum, Name) SELECT AccountNum, Name FROM AccountsNew
TRUNCATE TABLE AccountsNew
Прямо сейчас я разыграю около 250 000 учетных записей, но это будет расти. Это лучший метод, у вас есть другие идеи?
EDIT:
Это база данных MSSQL 2000. Я использую c # для обработки файла.
Единственные данные, на которых я сосредоточен, - это учетные записи, которые были добавлены и удалены между последним и текущим файлами. AccountsCurrent, используется только для определения того, какие учетные записи были добавлены или удалены.