Табличные переменные в SSIS - PullRequest
0 голосов
/ 04 мая 2010

В одной задаче SQL можно создать переменную таблицы

DELCARE @TableVar TABLE (...)

Затем в другом месте назначения задачи SQL или источника данных и выберите или вставьте в таблицу переменную?

Другой вариант, который я рассмотрел, - это использовать временную таблицу.

CREATE TABLE #TempTable (...)

Я бы предпочел использовать переменную таблицы, чтобы она оставалась в памяти. Но может использовать временную таблицу, если невозможно использовать переменную таблицы. Также я не могу использовать назначение набора записей, так как мне нужно предварительно выполнить прямые задачи SQL на нем позже.

Вариант использования, который пытается решить, по сути, выполняет преобразование вместо BizTalk. Существует очень большое преобразование плоских файлов в плоские, которые BizTalk должен преобразовать, к сожалению, объем данных будет создавать недопустимую нагрузку на сервере BizTalk, поэтому идея состоит в том, чтобы загрузить его в SSIS. Тем не менее, это не просто преобразование строки в строку, есть разные типы строк, которые имеют отношение друг к другу. Первая задача в SSIS - загрузить строку в соответствующие (временные) таблицы, затем во второй задаче данных выбор выполняется с правильным форматом для вывода.

Ответы [ 3 ]

1 голос
/ 04 мая 2010

Вы можете использовать некоторые из методов в этом посте: http://consultingblogs.emc.com/jamiethomson/archive/2006/11/19/SSIS_3A00_-Using-temporary-tables.aspx
особенно те, которые касаются использования RetainSameConnection = TRUE в диспетчере соединений.
Мне было бы интересно узнать больше информации о том, какой вариант использования у вас есть, который требует, чтобы вы записали данные во временную таблицу или переменную таблицы перед дальнейшей обработкой SSIS. Не могли бы вы позаботиться обо всех необходимых шагах SQL в исходном запросе, прежде чем начинать обработку потока данных с помощью SSIS?

1 голос
/ 17 мая 2010

Табличные переменные не хранятся исключительно в памяти и могут быть записаны на диск под давлением памяти. Я склонен использовать табличные переменные для очень маленьких поисков. Если вам нужно вставить таблицу в SQL Server из-за необходимых и сложных преобразований, используйте «постоянную» временную таблицу, которая усекается в пакете служб SSIS перед вставкой. Просто и получите то, что вам нужно сделать.

0 голосов
/ 04 мая 2010

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

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