выделение большого количества данных с помощью пакета и вставка данных в другую таблицу с помощью служб SSIS - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть таблица с несколькими миллионами строк. Мне нужно перенести эти данные с помощью пакетов в другую таблицу с помощью служб SSIS. Я попытался с помощью запроса ниже, чтобы получить записи в виде пакетов, но цикл не останавливается.

while exists (select top 1 * from dbo.test
               where (date > '2018-04-25'
                       and date < '2018-04-27'))
Begin

select * from dbo.test
where id in ( select top (1000) id
               where (date > '2018-04-25'
                      and date < '2018-04-27'))
                      order by date asc 
End

1 Ответ

0 голосов
/ 30 апреля 2018

Это должен быть единственный запрос, который вам нужен:

select * from dbo.test
where id in ( select id
              where (date > '2018-04-25'
                 and date < '2018-04-27'))

В SSIS в редакторе получателей на вкладке «Поток данных» для этой операции введите 1000 для параметра «Число строк в пакете:». Не нужно пытаться делать это с циклом и топ-1000. Я настоятельно рекомендую против такого подхода, поскольку производительность будет хуже. Возможно, в геометрической прогрессии.

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