У нас есть базы данных с полмиллиарда записей (Oracle, но должны иметь аналогичные показатели). Вы можете искать в нем в течение нескольких миллисекунд, если у вас есть правильные индексы. В вашем случае поместите указатель на имя и фамилию. Использование индекса двоичного дерева будет работать хорошо и будет масштабироваться в зависимости от размера вашей базы данных. Осторожные предложения LIKE часто нарушают использование индекса и в значительной степени ухудшают производительность. Я знаю, что MySQL может продолжать использовать индексы с предложениями LIKE, когда подстановочные знаки находятся только справа от строки. Вы должны сделать аналогичный поиск для SQL Server.
Сходство строк действительно не просто. Взгляните на http://en.wikipedia.org/wiki/Category:String_similarity_measures,, вы увидите некоторые из возможных алгоритмов. Не могу сказать, если SQL Server действительно реализует один из них, не знаю эту базу данных. Попробуйте Google "SQL Server" + названия алгоритмов, чтобы, возможно, найти то, что вам нужно. В противном случае у вас есть код, предоставленный в Wiki для различных языков (возможно, не SQL, но вы должны иметь возможность адаптировать их для хранимой процедуры).