Эффективный способ очистить входящие строковые поля в SQL Server 2008? - PullRequest
0 голосов
/ 26 января 2011

Я извлекаю данные из плоского файла в таблицу SQL Server 2008. Он содержит информацию об адресе, по которой мне нужно будет выполнить сопоставление, поэтому мне нужно немного почистить данные.

Я создал таблицу общих сокращений / терминов и их официальный аналог Почтового отделения США, а затем создал функцию, которая может принимать строку адреса и возвращать очищенную строку адреса, используя замену и данные из таблицы сокращений.

Выполнение UPDATE в таблице после импорта и выполнение SET в полях адреса со строкой, возвращенной из функции, работает отлично, но медленно. Я довольно новичок в SQL, есть ли лучший способ сделать это? Возможно, во время импорта служб SSIS, прежде чем он будет вставлен?

Ответы [ 2 ]

2 голосов
/ 26 января 2011

Вы можете сделать это как поиск, или вы можете поместить данные в промежуточную таблицу, а затем выполнить очистку промежуточной таблицы, используя задачу execute sql, а затем выполнить импорт в таблицу с потоком данных.Я предпочитаю делать это по нескольким причинам.Сначала я изначально передаю данные двум таблицам: одну очищаю, а другую точно так же, как в файле были данные.Таким образом, у меня есть неотредактированная версия данных, которые я могу запросить, отредактированная версия данных, которые я могу запросить, и данные в реальных таблицах.Это помогает мне исследовать проблемы импорта данных.Я легко могу понять, связана ли проблема с моей очисткой или с тем, что они отправили, или с чем-то из-за того, как хранятся данные (может быть, нарушение pk / fk или что-то подобное, что потребовало перехода к таблице исключений (я также отправляювсе записи в таблицу исключений, если они не могут быть импортированы.) Далее я могу исправить процесс очистки, если есть ошибка, без непрерывного выполнения длительного сложного процесса, требующего много времени (и без перехода к рабочим таблицам, пока я не уверен, что он имеетисправлено). И как только исправление выполнено, обычно все, что мне нужно сделать, это развернуть новую версию хранимого процесса, а не весь пакет служб SSIS. Я считаю, что это лучшая модель для возможности повторного поиска и поддержки импорта данных в видеони меняются.

1 голос
/ 26 января 2011

Похоже, что в этом случае в пакете служб SSIS вы можете выполнить поиск в таблице общих терминов, объединяя адрес и выводя чистый адрес, который затем будет передаваться в таблицу назначения.Это приведет к отключению шага обновления после загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...