Ако наистина искате да дефинирате сходството по точния начин, който сте формулирали във вашия въпрос, тогава ще трябва - както казвате - да приложите изчислението на разстоянието на Левенщайн. Или в код, изчислен за всеки ред, извлечен от DataReader, или като функция на SQL Server.
Посоченият проблем всъщност е по-сложен, отколкото може да изглежда на пръв поглед, защото не можете да предположите, че знаете какво взаимно споделят елементи между два низа могат да бъдат.
Така че в допълнение към Разстоянието на Левенщайн вероятно искате да посочите и минимален брой последователни знаци, които действително трябва да съвпадат (за да се заключи достатъчно сходство).
Накратко:Звучи като прекалено сложен и отнемащ време/бавен подход.
Интересното е, че в SQL Server 2008 имате функцията DIFFERENCE, която може да се използва за нещо подобно.
Той оценява фонетичната стойност на два низа и изчислява разликата. Не съм сигурен дали ще го накарате да работи правилно за изрази от няколко думи, като заглавия на филми, тъй като не се справя добре с интервали или числа и поставя твърде много акцент върху началото на низа, но все пак е интересен предикат, за който трябва да се знае.
Ако това, което сте всъщност опитът да се опише е някаква функция за търсене, тогава трябва да разгледате възможностите за пълно текстово търсене на SQL Server 2008. Той осигурява вградена поддръжка на тезаурус, фантастични SQL предикати и механизъм за класиране за "най-добри съвпадения"
РЕДАКТИРАНЕ:Ако искате да премахнете дубликатите, може би бихте могли да разгледате размито търсене на SSIS и трансформация на размита група. Самият аз не съм пробвал това, но изглежда като обещаващ повод.
РЕДАКТИРАНЕ 2:Ако не искате да ровите в SSIS и все още се борите с производителността на алгоритъма за разстояние на Левенщайн, може би бихте могли да опитате този алгоритъм, който изглежда по-малко сложен.