Нечёткий поиск при пересечении множеств с помощью хэширования по сигнатуре в SQL Статья рассказывает о реализации эффективного алгоритма нечёткого поиска между двумя множествами строк на базе хэширования по сигнатуре и интеграции этого решения в SQL Server с применением SQLCLR. 👉 Алгоритм основан на 32-битных сигнатурных хэшах с правилом двух ошибок, что обеспечивает детерминированный поиск строк с одной ошибкой по расстоянию Левенштейна. 👉 Для ускорения используется алгоритм HEngine, который дробит хэши на части (chunk) и сокращает объём сравниваемых данных до линейного роста при поиске похожих пар. 👉 Полная интеграция в SQL Server реализована через SQLCLR — вызовы сложных функций хэширования и сравнения строк неэффективны в T-SQL. 👉 Для повышения производительности введена оптимизация с k-комбинациями chunk-ов, уменьшающая затратные операции агрегации и join. 👉 Алгоритм подходит для поиска по небольшим и средним строкам (ФИО, VIN, штрихкоды и пр.) и может масштабироваться
Нечёткий поиск при пересечении множеств с помощью хэширования по сигнатуре в SQL
25 ноября 202525 ноя 2025
~1 мин