У меня есть набор хранимых процедур. Каждая хранимая процедура якобы сохраняет таблицу конкретной базы данных в синхронизации с идентичной в другой базе данных.Эффективно найти различия между двумя таблицами базы данных
Таблицы базы данных содержат до сотни миллионов записей. Мне нужно найти самый быстрый способ проверить, что эти процедуры действительно поддерживают все в синхронизации, и мне нужно иметь возможность находить записи, которые различаются между двумя таблицами для каждой процедуры (для целей отладки).
Я был проинформирован о том, что следующее (нашли где-то на SO я верю, но у меня нет ссылки, как это было некоторое время назад):
Insert into target_table(columns)
select columns from table1
except
select columns from table2
Insert into target_table(columns)
select columns from table2
except
select columns from table1
не будет работать достаточно быстро. Может ли кто-нибудь предложить другой способ сделать это, что было бы быстрее - либо с использованием процедур T-SQL, либо даже с внешнего кода на C#? (Я думал, что код C# может позволить мне хранить PK для целей хэширования, чтобы я мог по крайней мере отслеживать первичные ключи и находить, которые были излишними/отсутствующими, даже если я не отслеживал остальные поля).
Использование после запуска. –
Можете ли вы изменить схему, чтобы добавить дополнительный столбец типа контрольной суммы для обоих? –
возможно - что бы вы основали checkun? и что бы вы поставили после триггера? –