Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: SSIS | програмная настройка data flow task  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 837
Ferdipux
Это вы путаете колонки и рекордсеты. Для OLEDB - колонки имеют номера, начиная с 0, для ADO.NET - можно использовать имена.
Как утверждает документация Microsoft, в Execute SQL Task всегда возвращается только первый рекордсет.
То есть при настройке [Execute SQL Task] в Full result set, он возвращает один набор.
Если Connection manager типа OLEDB - нужно смаппить объектную переменную на элемент 0. Подскажите что это за объект - 0?

Провел эксперимент. Запрос возвращает таблицу из двух столбцов. Указываю мапинг элемента 0 на объектную переменную.
Далее циклом перебираю объектную переменную и кладу результат в текстовую переменную.
В watch вижу, что в ней хранится запись из первого столбца.
Можно ли добраться до второго?
4 дек 18, 12:40    [21752787]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 837
a_voronin,
Версия сервера не позволяет использовать внутренне партицирование.
4 дек 18, 12:42    [21752791]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 837
Ferdipux,

К сообщению приложен файл. Размер - 26Kb
4 дек 18, 12:43    [21752794]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3718
a_voronin
Yagrus2,


А вообще есть партиционирование


Пришла дикая мысль. А если сделать INSTEAD OF INSERT TRIGGER на вьюху. И в триггере кидать данные по таблицам. Кто-то делал такое? Насколько это адекватно по производительности?
4 дек 18, 14:40    [21752972]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5977
a_voronin,

а если в триггере придётся в разные переписывать? Сразу обвалится производительность.
4 дек 18, 15:24    [21753085]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3718
Владислав Колосов
a_voronin,

а если в триггере придётся в разные переписывать? Сразу обвалится производительность.


В триггере есть псевдовременная таблица Inserted. Из неё и кидаем в разные таблицы.

Кидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере?

Откуда такое заявление про "обвалиться производительность"?
4 дек 18, 15:28    [21753097]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27428
a_voronin
a_voronin
Yagrus2,


А вообще есть партиционирование


Пришла дикая мысль. А если сделать INSTEAD OF INSERT TRIGGER на вьюху. И в триггере кидать данные по таблицам. Кто-то делал такое? Насколько это адекватно по производительности?
Эта мысль сразу в голову приходит, для описанной задачи. Как и распределённое представление.

Но производительность упадёт, ведь это будет уже не балк инсёрт, а куча инсёртов в кучу таблиц с фильтром по колонке, так сказать, "полю секционирования".

Вот для распределённого представления шанс есть. Наверное. Может, сиквел такой умный, и из одного потока сделает несколько балк-ов, ведь это именно "распределённое представление", а не абстрактный уод.
4 дек 18, 16:20    [21753275]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27428
a_voronin
Кидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере?

Откуда такое заявление про "обвалиться производительность"?
Там же нельзя фимльтровать поток.
Там будет 20 (например, если 20 периодов) инсёртов с select из inserted с условием по полю, то есть 20 сканов этой псевдо-таблицы.
4 дек 18, 16:22    [21753283]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3718
alexeyvg
a_voronin
Кидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере?

Откуда такое заявление про "обвалиться производительность"?
Там же нельзя фимльтровать поток.
Там будет 20 (например, если 20 периодов) инсёртов с select из inserted с условием по полю, то есть 20 сканов этой псевдо-таблицы.


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

Другое дело, что под SSIS возникнет многопоточность.
4 дек 18, 16:40    [21753319]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
tunknown
Member

Откуда:
Сообщений: 577
a_voronin
Другое дело, что под SSIS возникнет многопоточность.
Она будет полезной, если только диски в RAID или быстрый SSD.

BOL
BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
SSIS обязателен? Если источник подходящий, то BULK INSERT неплох.
4 дек 18, 16:48    [21753340]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27428
a_voronin
Я предполагаю, что скан Inserted является на два порядка более быстрой операцией, чем вставка в физическую таблицу. Тем более, что она скорее всего, храниться в некоей быстрой памяти или уже закеширована в память.
Вставка в таблицу будет в любом случае.
А скан, конечно, быстрый, но если сканов много... Не говоря уже о том, что inserted может получиться такой, что памяти не хватит.

tunknown
BOL
BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
SSIS обязателен? Если источник подходящий, то BULK INSERT неплох.
Так вопрос в том, будет ли работать BULK INSERT при вставке из триггера, или вставке во VIEW.

Вот из SSIS с Conditional Split точно будет максимально быстро, а остальные варианты нужно проверять.
4 дек 18, 16:56    [21753360]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 965
Триггреы далеко НЕ всегда возможны
и далеко НЕ всегда желательны

как ETL разработчик - в БД оч. часто не дадут влезть вообще.

Conditional Split - это внутренность SSIS и всегда м.б использована.
4 дек 18, 17:13    [21753405]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 467
Yagrus2
Ferdipux,

Картинка с другого сайта.


В данном компоненте - в следующей строке пишете
<Variable для второго столбца> - 1

И получаете значение из второго столбца
4 дек 18, 18:15    [21753522]     Ответить | Цитировать Сообщить модератору
 Re: SSIS | програмная настройка data flow task  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3718
Гулин Федор
Триггреы далеко НЕ всегда возможны
и далеко НЕ всегда желательны

как ETL разработчик - в БД оч. часто не дадут влезть вообще.

Conditional Split - это внутренность SSIS и всегда м.б использована.


Речь идёт о триггере на стороне DESTINATION. Уж там вы должны иметь какие-то возможности. Тем более речь идет о триггере на вьюхе.
5 дек 18, 14:52    [21754450]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить