Najszybszy sposób na usunięcie znaków nieliczbowych z VARCHAR w SQL Server

Piszę narzędzie do importowania, które używa numerów telefonów jako unikalnego klucza w imporcie.

Muszę sprawdzić, czy numer telefonu nie istnieje jeszcze w moim DB. Problem polega na tym, że numery telefonów w bazie danych mogą mieć takie rzeczy, jak kreski i nawiasy i ewentualnie inne rzeczy. Napisałem funkcję, aby usunąć te rzeczy, problem polega na tym, że tak jestpowolny a przy tysiącu rekordów w moim DB i tysiącach rekordów do importowania na raz, proces ten może być niedopuszczalnie powolny. Ustawiłem już kolumnę numeru telefonu jako indeks.

Próbowałem użyć skryptu z tego posta:
Przycinanie T-SQL & nbsp (i inne znaki niealfanumeryczne)

Ale to nie przyspieszyło żadnego.

Czy istnieje szybszy sposób na usunięcie znaków nieliczbowych? Coś, co może dobrze działać, gdy trzeba porównać 10 000 do 100 000 rekordów.

Cokolwiek się robi, musi się spełnićszybki.

Aktualizacja
Biorąc pod uwagę to, na co odpowiadali ludzie, myślę, że będę musiał oczyścić pola przed uruchomieniem narzędzia do importowania.

Aby odpowiedzieć na pytanie, w czym piszę narzędzie importujące, jest to aplikacja C #. Porównuję BIGINT do BIGINT teraz, bez potrzeby zmiany danych DB i nadal otrzymuję uderzenie wydajności z bardzo małym zestawem danych (około 2000 rekordów).

Czy porównanie BIGINT z BIGINT może spowolnić?

Zoptymalizowałem stronę kodową mojej aplikacji tak, jak mogę (usunąłem wyrażenia regularne, usunąłem niepotrzebne wywołania DB). Chociaż nie mogę już izolować SQL jako źródła problemu, nadal czuję, że tak jest.

questionAnswers(15)

yourAnswerToTheQuestion