Цитата:
Сообщение от
b_nosoff
Автор говорит, что 160 бит конвертируются в строку nvarchar(40), длиной 80 байт, т.е. 640 бит, т.е. в ЧЕТЫРЕ раза больше (два символа на байт при конвертации в строковое hex представление, и два байта на символ при хранении в БД). Расточительно, не находите?
Возможно проще было бы 20 байт хеш значения порезать на 16 и 4 байта. И один кусок кодировать как guid поле SHA1HashGuid, а другой как int32 поле SHA1HashInt32. Все равно индекс составной (SHA1HashHex, dataareaid, partitionid) так что где 3 поля там и 4, зато по объему выиграем сильно.
Вариант 1
SHA1HashHex, dataareaid, partitionid это 80 + 8 + 8 = 96 байт
Вариант 2
SHA1HashIntGuid, SHA1HashInt32, dataareaid, partitionid это 16 + 4 + 8 + 8 = 36 байт
Выигрыш по объему - 62 %
Больше чем в 2,5 раза.