Низкая производительность потока данных служб 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.