Я пишу утилиту импорта, которая использует номера телефонов в качестве уникального ключа в импорте.
Мне нужно проверить, что номер телефона еще не существует в моей БД. Проблема в том, что номера телефонов в БД могут иметь такие вещи, как тире и скобки и, возможно, другие вещи. Я написал функцию для удаления этих вещей, проблема в том, что она медленная и с тысячами записей в моей БД и тысячами записей для импорта сразу, этот процесс может быть неприемлемо медленным. Я уже сделал номер столбца номера телефона индексом.
Я попытался использовать script из этой записи:
T-SQL trim & nbsp (и другие не-буквенно-цифровые символы)
Но это не ускорило его.
Есть ли более быстрый способ удаления нечисловых символов? Что-то, что может хорошо работать, когда нужно сравнивать 10 000 - 100 000 записей.
Что бы ни было сделано, необходимо выполнить быстро.
Обновление
Учитывая, что люди отреагировали, я думаю, что мне придется очищать поля до запуска утилиты импорта.
Чтобы ответить на вопрос о том, что я пишу в утилите импорта, это приложение С#. Сейчас я сравниваю BIGINT с BIGINT, и вам не нужно изменять данные DB, и я все еще делаю удар по производительности с очень небольшим набором данных (около 2000 записей).
Может ли сравнение BIGINT с BIGINT замедлять работу?
Я оптимизировал кодовую часть моего приложения настолько, насколько могу (удалял регулярные выражения, удалял ненужные вызовы БД). Хотя я больше не могу изолировать SQL как источник проблемы, я все еще чувствую, что это так.