В моем приложении я сохраняю содержимое URL-адресов в конкретной таблице базы данных. чтобы иметь минимальное дублирование, я хочу вычислить контрольную сумму для каждого контента. так что лучший тип данных sqlserver для сохранения контрольной суммы? и самый быстрый способ вычисления контрольной суммы для содержимого (html) URL-адресов?Самый быстрый способ вычисления контрольной суммы и лучшего Sql-файла данных сервера для сохранения этого
0
A
ответ
2
SHA1 может использоваться для расчета контрольной суммы. Результатом является массив байтов, который может быть сохранен либо как шестнадцатеричная строка, либо поле blob в SQL, но по практическим соображениям я думаю, что строка будет более удобной.
2
вы можете использовать встроенную функцию в SQL сервере для вычисления любого из них (MD2, MD4, MD5, SHA или SHA1)
примеры
SELECT HashBytes('MD5', 'http://www.cnn.com')
, которая возвращает VARBINARY тип данных 0xC50252F4F24784B5D368926DF781EDE9
SELECT CONVERT(VARCHAR(32),HashBytes('MD5', 'http://www.cnn.com'),2)
, который возвращает VARCHAR C50252F4F24784B5D368926DF781EDE9
Теперь все, что вам нужно сделать, это собирание, если вы хотите VARCHAR или VARBINARY и использовать это для вашей колонки
См Generating a MD2, MD4, MD5, SHA, or SHA1 hash by using HashBytes
ОК, это хороший подход. но существует ограничение (максимальная длина ввода составляет 8000 байт) – Sadegh