Низкая производительность потока данных служб SSIS и выбор в

Поэтому у меня есть скрипт:

select * 
into my_archive_05302013
from archive_A
where my_Date = '05/18/2013'

а также:

insert into archive_B (ID,my_date,field_n )
select ID,  my_Date,field_n from my_archive_05302013

где n в field_n составляет около 100 или около того. другими словами, в таблице, которую я загружаю, содержится более 100 столбцов.

который выполняется довольно быстро, запрос вставляет около 200000 записей. my_date - это некластеризованный индекс в таблице archive_A

Теперь, когда я создаю поток данных, используя SSIS 2008, требуется ЧАСЫ, чтобы завершить

У меня есть следующее в моем источнике OLE DB:

SELECT * FROM Archive_A
WHERE My_Date = (SELECT MAX(My_Date) from Archive_A)

и для пункта назначения OLE DB:

Режим доступа к данным: "Таблица или представление - быстрая загрузка" Имя таблицы: archive_B Проверены блокировки таблицы и ограничения проверки

Кто-нибудь знает, в чем может быть проблема?

заранее спасибо

1 ответ

Решение

Проблема заключается в том, что, поскольку вы используете источник данных и место назначения данных, вы извлекаете все данные из базы данных, а затем снова помещаете их обратно, тогда как ваш оператор INSERT хранит все эти данные в базе данных. Вместо этого используйте Excute SQL Task с оператором INSERT.

Другие вопросы по тегам