powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Останавливается выполнение пакета SSIS
22 сообщений из 22, страница 1 из 1
Останавливается выполнение пакета SSIS
    #39928933
Выполнение пакета бодренько идет, потом в какой-то момент останавливается и стоит до бесконечности в одном состоянии. В отладчике количество обработанных записей не меняется. Данный пакет благополучно работал на 2005 сервере. Сейчас перенесен на 2019.
При остановке отладки Выдается сообщение "Ошибка: 0xC0047022 в Кассовый сервер движение, SSIS.Pipeline: Код ошибки служб SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput в компоненте "Соединение слиянием 3" (753) завершился сбоем с кодом ошибки 0xC0047020 при обработке входа "Левый вход соединения слиянием" (758). Указанный компонент возвращает ошибку при вызове метода ProcessInput. Данная ошибка относится к компоненту, но является неустранимой и приводит к остановке выполнения задачи потока данных. Возможно, до этого были выданы сообщения об ошибках, в которых содержатся более подробные сведения о причине сбоя. Программа "[9460] DtsDebugHost.exe: DTS" завершилась с кодом 0 (0x0)." На оба входа слияния подаются данные одинаковой структуры.
Подскажите, куда копать?
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928938
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

обновление пакета - дела тонкое... Иногда не срабатывает и надо его перерисовывать.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928944
Попробовать перерисовать конечно можно. Копировать-вставить кубики по очереди в другой проект достаточно?
Кстати, подобная проблема уже была, так же останавливалось выполнение другого пакета. Но он был исходно изменен и запускался на 2005 сервере, где и был разработан, и перестал работать. Перенес на 2019 и все поехало.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928950
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

Я бы сначала заменил сбойный "квадратик"
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928951
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

как раз-таки копирование может криво работать. Иногда студия 2019 начинает падать при попытке изменить унаследованный проект.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928956
Замена одного элемента не помогла.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39928972
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

Судя по тому, что я вижу на картинке -- останавливается сортировка. Не хватает памяти, возможно.

А вы не хотите сортировать данные на уровне БД и подавать в data flow уже отсортированными?
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39929161
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,
а как запускаете
из VS по F5 ( Ctrl + F5)
я бы пошел от обртаного - на тех что вешается -
скопировал бы и на копии убирал бы последущие
( если там вставка в таргет то менял бы на заглушку - типа Rowcount)

и попытался найти то место где виснет - хотя у вас там паралельно

зы а вообще у меня как то начал тормозить SSIS merge и другого способа как переписать на T-SQL я не нашел
благо там был только SQL server
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39929171
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
( если там вставка в таргет то менял бы на заглушку - типа Rowcount)
Все эти квадратики (кроме трёх вверху слева) - обработка потоков байтов в памяти.
Трудно там "найти место". Чистое шаманство, постучи, поплюй, элемент удали-верни, может, заработает. Тут так и советуют, других вариантов нет.

Объём в принципе небольшой, 180 тыщ строк, но что то там кривое стало, в 2019-м, перестала сортировка работать.
Значит, надо от неё отказаться, или от SSIS.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39929172
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
и попытался найти то место где виснет - хотя у вас там паралельно
У него висит на 2-х сортировках. Раз не на одной, значит, дело именно в инжине сортировок.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39929186
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

Интересно сравнить сортировки а1 и а3.
Количество строк одинаковое, но зависло на а3
Поля и типы данных, по которым делаются сортировки, ну и вообще посмотреть на все поля.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936085
Появилось время, вернулся к задаче.
Перерисовал весь проект. Ничего не помогло. Разбил на части, крепко упростил. Теперь в потоке всего два элемента. Источник данных и назначение. Начинает исполняться и в какой-то момент останавливается с ошибкой.
Вот что пишет в ошибке:
Ошибка: 0xC0202009 в Скидки, Запись скидки [2]: Код ошибки служб SSIS: DTS_E_OLEDBERROR. Возникла ошибка OLE DB. Код ошибки: 0x80040E31.
Доступна запись OLE DB. Источник: "Microsoft SQL Server Native Client 11.0" Результат: 0x80040E31 Описание: "Время ожидания запроса истекло".
Ошибка: 0xC0047022 в Скидки, SSIS.Pipeline: Код ошибки служб SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput в компоненте "Запись скидки" (2) завершился сбоем с кодом ошибки 0xC0202009 при обработке входа "Вход назначения "OLE DB"" (15). Указанный компонент возвращает ошибку при вызове метода ProcessInput. Данная ошибка относится к компоненту, но является неустранимой и приводит к остановке выполнения задачи потока данных. Возможно, до этого были выданы сообщения об ошибках, в которых содержатся более подробные сведения о причине сбоя.
Ошибка: 0xC02020C4 в Скидки, Скидка [37]: Ошибка при попытке добавить строку в буфер задачи потока данных. Код ошибки 0xC0047020.
Ошибка: 0xC0047038 в Скидки, SSIS.Pipeline: Код ошибки служб SSIS: DTS_E_PRIMEOUTPUTFAILED. Метод PrimeOutput для компонента Скидка завершился сбоем с кодом ошибки 0xC02020C4. Компонент вернул код ошибки при вызове метода PrimeOutput() из обработчика конвейера. Значение кода ошибки определяется компонентом, но ошибка является неустранимой, и выполнение конвейера остановлено. Возможно, до этого были опубликованы сообщения об ошибках, в которых содержатся более подробные сведения о причине сбоя.

Есть, правда, предположение дилетанта, что выборка и запись мешают друг другу. Здесь, насколько я понимаю, процессы по возможности распараллеливаются, а задача состоит в том, чтобы в некую таблицу дополнить данными из другой базы данных. И в запросе источнике участвует та же таблица, что и в назначении. Это лишь мое предположение, и что с дальше делать не понимаю.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936088
Кажется, предположение подтверждается. sp_who2 говорит, что в базе выполняется два процесса, BULK INSERT и SELECT, причем инсерт блокируется селектом и оба в состоянии suspended. Как заставить сначала отобрать все, потом все писать?
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936102
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков
Как заставить сначала отобрать все, потом все писать?
1) Вставить данные в промежуточную таблицу, а потом из неё записать.
2) Поставить для чтения nolock в запросах-источниках данных.
3) перед импортом сделать копию в отдельную талицу тех данных, которые нужны для импорта, и которые находятся в таблице-приёмнике ,и переписать запросы импорта на её использование.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936104
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков
Кажется, предположение подтверждается. sp_who2 говорит, что в базе выполняется два процесса, BULK INSERT и SELECT, причем инсерт блокируется селектом и оба в состоянии suspended. Как заставить сначала отобрать все, потом все писать?

попробовать в настройках получателя снять галку "блокировать таблицу", но мне кажется не поможет
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936168
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot
Сергей Жидков
Кажется, предположение подтверждается. sp_who2 говорит, что в базе выполняется два процесса, BULK INSERT и SELECT, причем инсерт блокируется селектом и оба в состоянии suspended. Как заставить сначала отобрать все, потом все писать?

попробовать в настройках получателя снять галку "блокировать таблицу", но мне кажется не поможет



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

Быстрый джойн
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936202
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков,

странно объем копеечный
да проще поменять таргет таблицу на новую той же стуркутры и проверить дело ли в ней
но вообще то там уже все просто
источник --> приемник
что странно

зы а у вас случайно выборка и запись НЕ из одной и той же таблицы ???
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936226
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Жидков
Как заставить сначала отобрать все, потом все писать?


Надо вставлять в буфер, а потом на стороне бд накатывать скриптом.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936236
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Вот у меня вообще ничего никогда не виснет. Я вообще даже не понимаю, как такой зависон создать можно.
Гулин Федор
зы а у вас случайно выборка и запись НЕ из одной и той же таблицы ???
Написал же ТС в последнем посте, что из одной.
Сортировка и объёмы ни при чём.
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936243
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Лично я считаю, что корень проблемы в том, что люди уверены в том, что "понимают" как писать ETL, и не желают читать читать литературу.

Потому что вы должны сначала сделать Extract, потом Transform, а потом Load. А у автора данной загрузки все слилось в единый ком.

Умные люди, когда рисуют схему ДВХ, указывают помимо stage еще и буфер.

...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936619
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,

Можем обсудить узким кругом - буфер - это ODS в иных источниках картинок?
Например, частая история в SAP BW - там выделяется специальный "ODS", где хранится история выгрузок (за некоторое время). Это если Stage или DWH должно отвечать на странный вопрос "а как выглядел отчет на определенную дату в тех данных/предположениях".
...
Рейтинг: 0 / 0
Останавливается выполнение пакета SSIS
    #39936641
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux
a_voronin,

Можем обсудить узким кругом - буфер - это ODS в иных источниках картинок?
Например, частая история в SAP BW - там выделяется специальный "ODS", где хранится история выгрузок (за некоторое время). Это если Stage или DWH должно отвечать на странный вопрос "а как выглядел отчет на определенную дату в тех данных/предположениях".


Мы тут недавно обсуждали ods vs stage https://www.sql.ru/forum/1321375/ods-vs-stage .

Под буфером понимается принципиально другая вещь. Это таблица или место куда скидывается порция данных ДО ТОГО КАК ОНА ПОПАЛА в ODS или STAGE, до того как начался MERGE. Именно в данном "ETL" в данной теме автора подвело именно отсутствие буфера. Он одновременно читал таблицу и вставлял в неё. В результате нарвался на блокировку.

BUFFER нужен для как минимум 2-х вещей
1) Убедиться, что порция данных полностью пришла (не начинать MERGE, пока мы не убедимся, что порция идентификаторов от start до end на нашей стороне, потому что нет гарантии, что тот же bulk insert не упал вставив с 100 по 150, но пропустив и 50 по 99).
2) Использовать в качестве источника таблицу отличную от таблицы приемника
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Останавливается выполнение пакета SSIS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]