Проблемы BINARY_CHECKSUM

beaver06
Дата: 12.09.2006 13:58:07
Подскажите, пожалуйста, какие проблемы в использовании BINARY_CHECKSUM.
Я хочу сравнивать две таблицы на изменение строк...
Спасибо..
RENaissance
Дата: 12.09.2006 14:01:58

Такие проблемы могут возникнуть.


Posted via ActualForum NNTP Server 1.3

beaver06
Дата: 12.09.2006 14:24:59
RENaissance

Такие проблемы могут возникнуть.


Posted via ActualForum NNTP Server 1.3

Я так понял проблема вот в этом тексте:
BOL
If one of the values in the expression list changes, the checksum of the list also usually changes. However, there is a small chance that the checksum will not change.


А можно в двух словах пояснить...Не очень понял...
GreenSunrise
Дата: 12.09.2006 14:28:03
Любой хэш, даже самый хороший, предполагает некую ненулевую вероятность того, что хэши разных исходных объектов могут совпасть. Хороший хэш лишь уменьшает такую вероятность, но не сводит ее до нуля.

Отсюда мораль - возьмете вы две разные строки, посчитаете у них хэш, а он окажется одинаковым. Вы сделаете вывод, что изменений в строке не было, а они на самом деле были.
beaver06
Дата: 12.09.2006 14:36:48
GreenSunrise
Любой хэш, даже самый хороший, предполагает некую ненулевую вероятность того, что хэши разных исходных объектов могут совпасть. Хороший хэш лишь уменьшает такую вероятность, но не сводит ее до нуля.

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


Спасибо за объяснение...
Это верно для любых ситуаций?
А для чего тогда Microsoft включил BINARY_CHECKSUM в SQL Server?
GreenSunrise
Дата: 12.09.2006 14:53:06
beaver06
Это верно для любых ситуаций?

Еще раз перечитайте мой пост. ДЛЯ БОЛЬШИНСТВА СИТУАЦИЙ одинаковый хэш будет означать ОДИНАКОВЫЕ исходные строки. Но в некотором, очень малом количестве ситуаций одинаковый хэш может получиться для разных источников.

beaver06
А для чего тогда Microsoft включил BINARY_CHECKSUM в SQL Server?

Потому что хэш может использоваться для совершенно других задач. Которые с отслеживанием изменений никак не связаны.
beaver06
Дата: 12.09.2006 15:06:37
GreenSunrise
beaver06
Это верно для любых ситуаций?

Еще раз перечитайте мой пост. ДЛЯ БОЛЬШИНСТВА СИТУАЦИЙ одинаковый хэш будет означать ОДИНАКОВЫЕ исходные строки. Но в некотором, очень малом количестве ситуаций одинаковый хэш может получиться для разных источников.

beaver06
А для чего тогда Microsoft включил BINARY_CHECKSUM в SQL Server?

Потому что хэш может использоваться для совершенно других задач. Которые с отслеживанием изменений никак не связаны.


GreenSunrise, спасибо большое!