У меня есть несколько старых медленных сканеров штрих-кодов на базе Windows CE на нашем складе, для которых я пишу приложение C # Winforms, чтобы общаться с нашей базой данных SQL Server 2008 R2 на сервере.
Сканеры подключаются через Wi-Fi, и наше покрытие в лучшем случае оставляет желать лучшего.
Мне нужен какой-то эффективный метод обеспечения того, чтобы:
- a) Обновления / Вставки/ Удаление выполняется без возникновения конфликтов
- b) Минимальные объемы данных передаются между клиентом и сервером
- c) Учитывая, что покрытие плохое, это должно быть на стороне клиента, т.е.сканеры проверяют наличие изменений в таблицах и поддерживают себя как можно более актуальными.
В настоящее время у меня уже есть триггеры для всех таблиц базы данных, которые помещают дату и время в столбец LastUpdated каждыйКогда вставка или обновление выполняются, но, очевидно, после удаления строки она исчезает, и мне, вероятно, потребуется вытащить весь запрос в сканер и сравнить его скопия сканера, чтобы увидеть, чего не хватает - я стараюсь избегать этого, чтобы все было быстро.Колонок не так много, поэтому вытащить всю строку не проблема - мне не нужны атомарные уровни для каждого столбца;Мне просто нужно знать, какие строки извлекать.
Я кратко рассмотрел функцию отслеживания изменений SQLS, но мне нужно немного больше обдумать это ... похоже, это позволит мнечтобы выяснить, что было удалено, но, безусловно, это оказывает огромное влияние на производительность и / или размер базы данных?
Также я не могу внести огромные изменения в схему базы данных - она уже используется, поэтому яне уверен, что некоторые из других шаблонов синхронизации, о которых я читал, пригодны для использования.
Я думаю, мне просто нужно указать правильное направление, чтобы сделать это эффективно.Ссылка на хорошо объясненную статью, которая не является слишком технической с SQL, была бы хороша (я знаю основы, но я определенно не настоящий администратор баз данных, я только что был вовлечен в эту роль).