У меня есть требование в проекте, над которым я сейчас работаю, чтобы сравнить самую последнюю версию записи с предыдущей исторической записью для обнаружения изменений.
Я использую платформу синхронизации данных Azure Offline для передачи данных с клиентского устройства на сервер, что приводит к обновлению записей в синхронизированной таблице в зависимости от изменений пользователя. Затем у меня есть триггер, копирующий каждое обновление в таблицу истории, и SQL-запрос, который запускается при построении списка изменений для сравнения текущей записи с самой последней историей путем сравнения столбцов — в основном строк, но некоторых целых чисел и значений даты.
Является ли это наиболее эффективным способом достижения этого? Не будет ли быстрее загрузить данные в память и выполнить сравнение на основе кода с правилами?
Кроме того, если я буду постоянно хранить все исторические данные в таблице SQL, повлияет ли это на производительность с течением времени, и не лучше ли хранить эти данные в чем-то вроде хранилища таблиц Azure? Я также думаю о затратах, поскольку использование SQL намного дороже, чем хранилище таблиц, но, очевидно, я не могу использовать триггер, и мне нужно будет вручную вставлять каждую синхронизированную строку в хранилище таблиц.