2015-06-23 1 views
5

В моем проекте в настоящее время имеется база данных, которая содержит несколько таблиц, наиболее важный из которых имеет один двоичный столбец с очень большими записями (представляющий собой сериализованные объекты C#). В производственной базе данных имеется большое количество записей, а при отладке часто приходится переносить эти записи в локальную базу данных разработки (поскольку удаленная отладка не работает, что является отдельной проблемой).Сравнение данных Visual Studio с меньшим количеством столбцов

Если я попытаюсь сравнить локальные и производственные базы данных в этой таблице со всеми столбцами, сравнение может занять до часа или, в конечном итоге, тайм-аут, но это сработало в прошлом и позволило мне загрузить записи и успешно отлаживать их. Если я сравниваю все столбцы таблицы, но столбец двоичных данных, сравнение выполняется почти мгновенно, но этот столбец затем не переносится в производственную базу данных.

Мой вопрос: есть ли способ запустить сравнение данных между двумя таблицами, исключая конкретный столбец для самого сравнения (другие поля предоставляют достаточную информацию для разграничения без него), но включают его при обновлении целевой базы данных?

ответ

-1

Вы можете использовать хеш-функцию на своих больших полях varbinary и сравнить их. HASHBYTES с MD5 - хороший метод для сравнения, поскольку астрономически маловероятно генерировать одно и то же значение хэша для двух разных входов. Проблема в том, что HASHBYTES работает только с полями до 8000 байт. Есть некоторые работы, но, создав функцию. Несколько размещена здесь:

SQL Server 2008 and HashBytes

Вы бы иметь возможность хранить хэш-значения в таблице в момент вставки или обновления при помощи сохранялось вычисляемых полей. Или вы можете просто генерировать значения хеширования, выполняя свой сравнительный запрос.

 Смежные вопросы

  • Нет связанных вопросов^_^