powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS не перестает удивлять
19 сообщений из 19, страница 1 из 1
MS не перестает удивлять
    #39975590
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какого ....

Код: sql
1.
2.
3.
declare @n numeric(1,0) = 1, @nn numeric(1,0) = -1
declare @i integer = 1, @ii integer = -1
select checksum(@n), checksum(@nn), checksum(@i), checksum(@ii)


почему для numeric одинаковая контрольная сумма?
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975596
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это нормально, когда хеш-функция для разных значений возвращает одинаковый результат.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975601
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

это же зависит от особенностей полинома.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975604
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

значения-то одинаковые, типы разные
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975609
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor
Гавриленко Сергей Алексеевич,

значения-то одинаковые, типы разные
В каком месте они одинаковые? Абсолютно разные:

Код: sql
1.
2.
3.
4.
select cast(@n as binary(8)), cast(@nn as binary(8)), cast(@i as binary (8) ), cast(@ii as binary (8))

------------------ ------------------ ------------------ ------------------
0x0100000101000000 0x0100000001000000 0x0000000000000001 0x00000000FFFFFFFF
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975613
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

ok

Код: sql
1.
2.
3.
4.
declare @n numeric(1,0) = 1, @nn numeric(1,0) = -1
declare @i integer = 1, @ii integer = -1
declare @b binary(8) = 0x0100000101000000, @bb binary(8) = 0x0100000001000000
select checksum(@n), checksum(@nn), checksum(@i), checksum(@ii), checksum(@b), checksum(@bb)


почему в последнем случае тогда разные?
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975618
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor
почему в последнем случае тогда разные?
Потому что так захотелось разработчикам MSSQL. Или бага. Однако, чтобы доказать, что это бага, придется найти, чему противоречит данное поведение.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975626
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

остается надеяться, что CHECKSUM, которая на PAGE VERIFY работает по другому алгоритму
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975648
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

думаю, что там и там используется один из CRC полиномов. Не удивлюсь, если современные процессоры умеют его рассчитывать на аппаратном уровне.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39975832
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
Это нормально, когда хеш-функция для разных значений МОЖЕТ возвращаТЬ одинаковый результат.


100%
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976556
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Гавриленко Сергей Алексеевич
Это нормально, когда хеш-функция для разных значений МОЖЕТ возвращаТЬ одинаковый результат.

100%
Теоретически, да. Но на практике, по хорошему, это должно быть очень редким явлением.

Меня вот сильно расстроил алгоритм sound. Думал применить его для проверки схожести имен.
Несусветная чушь. Фактически он проверяет схожесть первой буквы. Далее может дать одинаковый результат для очень отличающихся слов. Пользы ноль. Зачем вообще такое делать ?
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976564
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,

Делайте CLR для Дамерау-Левенштейна и будет вам счастье. Алгоритм soundex заточен под под английский язык и фонемы и для кириллицы работает плохо.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976587
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

SHA-2 туда не завезли?
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976592
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
L_argo,

Делайте CLR для Дамерау-Левенштейна и будет вам счастье. Алгоритм soundex заточен под под английский язык и фонемы и для кириллицы работает плохо.


L_argo прав.
CLR для Дамерау-Левенштейна.
Однако алгоритм медленный, и если Вам надо, скажем, сравнить два списка по 100.000 имён, то придется изощряться.

А CheckSum это вобще не хэш (в хорошем смысле этого слова) функция .
Просто, что то вроде сложения в столбик.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976628
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не ошибаюсь, чексум дает дубли с вероятностью около 10^-6, что для баз данных очень мало.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976631
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
не должно бы, там результат поболе в размере будет и шансов помене..
интересно насколько он медленнее checksum


Alexander Us
да вот если бы сложение в столбик, было бы нормально
а тут вообще просто учет отдельных битов в байте, причем по неизвестному алгоритму.

чтоб обойти проблему пришлось делать дополнительное преобразование в smallint.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976638
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor
интересно насколько он медленнее checksum

Сейчас под такие вещи сопроцессоры делают, так что возможно, что всё не так страшно.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976669
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor

Alexander Us
да вот если бы сложение в столбик, было бы нормально
а тут вообще просто учет отдельных битов в байте, причем по неизвестному алгоритму.

чтоб обойти проблему пришлось делать дополнительное преобразование в smallint.


Был когда то подобный вопорс.
там удалось влёт подобрать две разных стороки с одинаковым checksum

checksum ни хорошая, но плохая. Просто такой алгоритм.
...
Рейтинг: 0 / 0
MS не перестает удивлять
    #39976773
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
ShIgor,

SHA-2 туда не завезли?


В 2019 - есть. Там при загрузки CLR подписью считается sha2-сигнатура. Если я правильно понял Ваш вопрос и ни чего (уже) не путаю.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS не перестает удивлять
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]