Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] все |
Yagrus2 Member Откуда: Москва Сообщений: 856 |
Если Connection manager типа OLEDB - нужно смаппить объектную переменную на элемент 0. Подскажите что это за объект - 0? Провел эксперимент. Запрос возвращает таблицу из двух столбцов. Указываю мапинг элемента 0 на объектную переменную. Далее циклом перебираю объектную переменную и кладу результат в текстовую переменную. В watch вижу, что в ней хранится запись из первого столбца. Можно ли добраться до второго? |
||
4 дек 18, 12:40 [21752787] Ответить | Цитировать Сообщить модератору |
Yagrus2 Member Откуда: Москва Сообщений: 856 |
a_voronin, Версия сервера не позволяет использовать внутренне партицирование. |
4 дек 18, 12:42 [21752791] Ответить | Цитировать Сообщить модератору |
Yagrus2 Member Откуда: Москва Сообщений: 856 |
Ferdipux, К сообщению приложен файл. Размер - 26Kb |
4 дек 18, 12:43 [21752794] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 3825 |
Пришла дикая мысль. А если сделать INSTEAD OF INSERT TRIGGER на вьюху. И в триггере кидать данные по таблицам. Кто-то делал такое? Насколько это адекватно по производительности? |
||
4 дек 18, 14:40 [21752972] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 6180 |
a_voronin, а если в триггере придётся в разные переписывать? Сразу обвалится производительность. |
4 дек 18, 15:24 [21753085] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 3825 |
В триггере есть псевдовременная таблица Inserted. Из неё и кидаем в разные таблицы. Кидать в разные таблицы по любому придется и фильтровать входной поток тоже. Вопрос насколько эффективно это в SSIS и насколько в триггере? Откуда такое заявление про "обвалиться производительность"? |
||
4 дек 18, 15:28 [21753097] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 27700 |
Но производительность упадёт, ведь это будет уже не балк инсёрт, а куча инсёртов в кучу таблиц с фильтром по колонке, так сказать, "полю секционирования". Вот для распределённого представления шанс есть. Наверное. Может, сиквел такой умный, и из одного потока сделает несколько балк-ов, ведь это именно "распределённое представление", а не абстрактный уод. |
||||
4 дек 18, 16:20 [21753275] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 27700 |
Там будет 20 (например, если 20 периодов) инсёртов с select из inserted с условием по полю, то есть 20 сканов этой псевдо-таблицы. |
||
4 дек 18, 16:22 [21753283] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 3825 |
Я предполагаю, что скан Inserted является на два порядка более быстрой операцией, чем вставка в физическую таблицу. Тем более, что она скорее всего, храниться в некоей быстрой памяти или уже закеширована в память. Другое дело, что под SSIS возникнет многопоточность. |
||||
4 дек 18, 16:40 [21753319] Ответить | Цитировать Сообщить модератору |
tunknown Member Откуда: Сообщений: 606 |
|
||||
4 дек 18, 16:48 [21753340] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 27700 |
А скан, конечно, быстрый, но если сканов много... Не говоря уже о том, что inserted может получиться такой, что памяти не хватит.
Вот из SSIS с Conditional Split точно будет максимально быстро, а остальные варианты нужно проверять. |
||||||
4 дек 18, 16:56 [21753360] Ответить | Цитировать Сообщить модератору |
Гулин Федор Member Откуда: МИНСК Сообщений: 972 |
Триггреы далеко НЕ всегда возможны и далеко НЕ всегда желательны как ETL разработчик - в БД оч. часто не дадут влезть вообще. Conditional Split - это внутренность SSIS и всегда м.б использована. |
4 дек 18, 17:13 [21753405] Ответить | Цитировать Сообщить модератору |
Ferdipux Member Откуда: Москва Сообщений: 477 |
В данном компоненте - в следующей строке пишете <Variable для второго столбца> - 1 И получаете значение из второго столбца |
||
4 дек 18, 18:15 [21753522] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 3825 |
Речь идёт о триггере на стороне DESTINATION. Уж там вы должны иметь какие-то возможности. Тем более речь идет о триггере на вьюхе. |
||
5 дек 18, 14:52 [21754450] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] все |
Все форумы / Microsoft SQL Server | ![]() |