Je suis en train d'écrire un utilitaire d'importation qui est à l'aide des numéros de téléphone comme clé unique au sein de l'importation.
J'ai besoin de vérifier que le numéro de téléphone n'existe pas déjà dans ma DB. Le problème est que les numéros de téléphone dans la base de données pourrait avoir des choses comme les tirets et les parenthèses et peut-être d'autres choses. J'ai écrit une fonction pour supprimer ces choses, le problème est qu'il est lent et avec des milliers d'enregistrements dans ma DB et des milliers de dossiers à importer à la fois, ce processus peut être exagérément lente. J'ai déjà fait la colonne des numéros de téléphone d'un index.
J'ai essayé d'utiliser le script de ce post:
http://stackoverflow.com/questions/52315/t-sql-trim-nbsp-and-other-non-alphanumeric-characters
Mais ça n'a pas l'accélérer tout.
Est-il un moyen plus rapide pour supprimer des caractères non numériques? Quelque chose qui peut bien performer lors de 10 000 à 100 000 enregistrements doivent être comparées.
Tout ce qui est fait doit effectuer rapidement.
Mise à jour
Compte tenu de ce que les gens ont répondu, je pense que je vais avoir à nettoyer les champs avant de me exécuter l'utilitaire d'importation.
Pour répondre à la question de ce que je suis en train d'écrire l'utilitaire d'importation, c'est une application en C#. Je suis la comparaison de type BIGINT BIGINT maintenant, sans avoir besoin de modifier DB données et je prends quand même un gain de performance avec un très petit ensemble de données (environ 2000 dossiers).
Pourrait comparer de type BIGINT BIGINT être ralentir les choses?
J'ai optimisé le code côté de mon application autant que je le peux (supprimé regexes, retiré inutile DB appels). Bien que je ne peux pas isoler SQL comme la source du problème, je me sens toujours comme il est.