2009-11-10 3 views
0

У меня есть пакет SSIS, который запускает хранимый процесс для экспорта в файл excel. Все работало как чемпион, пока мне не понадобилось немного переписывать хранимую процедуру. Теперь процесс занимает около 1 минуты, а экспортированные столбцы разные, поэтому мои проблемы следующие:Таймауты SQL и SSIS

1) SSIS жалуется, когда я нажал на кнопку предварительного просмотра «Нет информации столбца, возвращенное командой»

2) время ожидания примерно через 30 секунд.

Что я сделал.

Пробовал очистить/оптимизировать запрос. Это немного помогло, но он все еще выполняет некоторые крупные вычисления, и он отлично работает в SSMS.

Изменено значение тайм-аута до 90 секунд. Кажется, не помогло. Может, кто-то здесь может?

Спасибо,

ответ

1

Нашел этот маленький лакомый кусочек, который очень помог. No Column Names

В основном все, что вам нужно сделать, это добавить в текст запроса SQL запрос в SSIS.

SET FMTONLY OFF

SET NOCOUNT ON

Единственная проблема теперь он работает медленно, как патока :-(

EDIT: Это работает только слишком чертовски медленно

Измененный от использования. #tempTable to tempTable. Добавление в соответствующие выпадающие сообщения. argh ...

0

Выстрел в темноте на основе чего-то неясного я ударил лет назад: Когда вы изменили процедуру, вы добавить вызов на вторую процедуру? Это может испортить способность SSIS определять возвращаемый набор данных.

Что касается (2), выполняет ли процедура более 30 или 90 секунд в SSMS? Если нет, знаете ли вы, что запрос действительно попадает в SQL из SSIS? Возможно, стоит запустить SQL Profiler, чтобы узнать, что на самом деле отправляется на SQL Server. [Это было так, как я узнал свой неясный факт.]

1

Хотя, похоже, вы, возможно, ответили на часть своей очереди stion, вероятно, вы получаете сообщение «No column information received from command», потому что таблица не существует в то время, когда она пытается проверить метаданные. Создание таблиц как не временных таблиц разрешает эту проблему.

Если вы настаиваете на использовании временных таблиц, вы можете создать временные таблицы на этапе, предшествующем потоку данных. Вам нужно будет создать его как таблицу ## и отключить совместное использование соединения для этого, чтобы это работало, но это альтернатива созданию постоянных таблиц.

Смежные вопросы