У меня есть хранимая процедура, которую я пытаюсь выполнить в SSIS, используя Execute SQL Task. Эта хранимая процедура включает в себя курсор, а последний шаг - «Отменить выделение курсора». Я замечаю, что даже после завершения выполнения хранимой процедуры выполнение задачи SQL не завершается и останавливается в течение длительного времени, прежде чем перейти к следующему шагу. Чтобы проверить это, я добавил insert stmt как последнюю строку в хранимой процедуре с GETDATE() как одно значение столбца. Он показывает, что выполнение STP завершено за 2 часа до завершения выполнения задачи SQL. Любая идея, если Execute SQL Task выполняет некоторые дополнительные шаги вместе с необходимой хранимой процедуройВыполнение SQL-задачи продолжить выполнение после завершения хранимой процедуры
0
A
ответ
0
Решено :) Это было в основном потому, что я использовал несколько операторов печати в хранимых процедурах SQL и, поскольку я выполнял эти хранимые процедуры из SSIS, это могло бы быть создавая некоторые буферы, которые очищались после выполнения. Я прокомментировал печать stmts в моем сохраненном proc и время выполнения в SSIS такое же, как время выполнения в SSMS.
Спасибо, что помогли мне.
С уважением
Почему вы предполагаете, что SSIS или SQL-запрос Execute по ошибке? Использование курсоров - очень сильный запах - есть очень, очень и очень мало вещей, которые требуют курсора. Единственный допустимый сценарий, пакетная обработка, решается SSIS datalfow. Скорее всего, ваша хранимая процедура * не * заканчивается, если вы считаете, что это так, потому что курсор занимает гораздо больше времени, чем эквивалентный оператор SQL. В худшем случае использование курсора заканчивается блокировкой всей таблицы в течение нескольких часов, в результате чего происходит ожидание с другими заявлениями –
Можете ли вы опубликовать свой код или сообщить нам, что вы пытаетесь сделать. Это даст нам лучшее представление о том, что происходит, и, возможно, найти лучшее решение. –
Также смотрите в прогоном профилировщика, а не просто с помощью инструкции insert в конце SP> –