Schnellste Methode zum Entfernen nicht numerischer Zeichen aus einer VARCHAR in SQL Server

Ich schreibe ein Importdienstprogramm, das Telefonnummern als eindeutigen Schlüssel für den Import verwendet.

Ich muss überprüfen, ob die Telefonnummer in meiner Datenbank noch nicht vorhanden ist. Das Problem ist, dass Telefonnummern in der DB möglicherweise Gedankenstriche und Klammern sowie andere Dinge enthalten. Ich habe eine Funktion geschrieben, um diese Dinge zu entfernen, das Problem ist, dass es istschleppend Und mit Tausenden von Datensätzen in meiner Datenbank und Tausenden von Datensätzen, die gleichzeitig importiert werden müssen, kann dieser Prozess unannehmbar langsam sein. Ich habe die Spalte mit den Telefonnummern bereits zu einem Index gemacht.

Ich habe versucht, das Skript aus diesem Beitrag zu verwenden:
T-SQL-Trimm (und andere nicht-alphanumerische Zeichen)

Aber das hat es nicht beschleunigt.

Gibt es eine schnellere Möglichkeit, nicht numerische Zeichen zu entfernen? Etwas, das gut funktioniert, wenn 10.000 bis 100.000 Datensätze verglichen werden müssen.

Was immer getan wird, muss funktionierenschnell.

Aktualisieren
Wenn man bedenkt, mit was die Leute geantwortet haben, muss ich wohl die Felder bereinigen, bevor ich das Importdienstprogramm ausführe.

Um die Frage zu beantworten, in was ich das Importdienstprogramm schreibe, ist es eine C # -App. Ich vergleiche jetzt BIGINT mit BIGINT, ohne die DB-Daten ändern zu müssen, und erlebe immer noch einen Leistungseinbruch mit einer sehr kleinen Datenmenge (etwa 2000 Datensätze).

Könnte der Vergleich von BIGINT mit BIGINT die Dinge verlangsamen?

Ich habe die Codeseite meiner App so weit wie möglich optimiert (Regexes entfernt, unnötige DB-Aufrufe entfernt). Obwohl ich SQL nicht mehr als Ursache des Problems isolieren kann, habe ich immer noch das Gefühl, dass dies der Fall ist.

Antworten auf die Frage(15)

Ihre Antwort auf die Frage