Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Всем привет!

После миграции на SQL 2012 столкнулись с зависанием запросов, выполняемых во время работы пакетов SSIS.

У нас каждую ночь одновременно запускаются несколько типовых пакетов на загрузку и обработку данных из нескольких источников. Чаще всего загрузка занимает 10-20 минут, в зависимости от объемов данных в источнике. Но иногда бывают дни, когда какое-то одно задание в одном пакете от одного источника вдруг виснет...и может занимать час, или 5 часов.
Задания зависали на выборке данных (select) при использовании компонента Data Flow. Мы переписали эти задания, сделали выборку и вставку данных через SQL. Но зависания все-равно периодически происходят. Блокировок не наблюдается, ресурсов более чем хватает.

Может кто-нибудь подсказать, куда копать, чтобы выяснить причины?

OS: Windows Server 2012 Std X64
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
22 янв 13, 10:14    [13807210]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
gang
Member

Откуда:
Сообщений: 1394
Дэр Пароль,

Шаманство конечно, но вчера наткнулся на аналогичную проблему в SSIS 2005. Вот тут описание похожего случая. После правок датафлоу задания в пакете оно начинает виснуть без ошибок и прочих видимых причин (блокировка, перегрузка железа и т.п.). Когда в очередной раз завис при отладке "протыкался" по всем объектам в ДатаФлоу и с тех пор вроде больше не виснет. Проблема, как я понял, в метаданных пакета. Может и Вам этот бубен поможет.
22 янв 13, 11:02    [13807535]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
gang,

да, у нас пакеты еще с 2005 версии идут. Мне тоже кажется, какой-нибудь выставленный параметр криво воспринимается в новой среде. Попробуем переписать с нуля.
22 янв 13, 11:21    [13807664]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104760
Дэр Пароль
Блокировок не наблюдается, ресурсов более чем хватает.

Тогда какой статус у коннекта, который выполняет ваш запрос ?
22 янв 13, 11:27    [13807711]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Glory,

RUNNING.
22 янв 13, 11:29    [13807722]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104760
Дэр Пароль
Glory,

RUNNING.

Значит нет никакого зависания.
22 янв 13, 11:30    [13807729]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
gang
Member

Откуда:
Сообщений: 1394
Дэр Пароль,

Не, мне кажется дело не в параметрах, а в кривизне механизма обновления внутренних связей между компонентами датафлоу таска при изменении одного\нескольких из них. Мне помогло, как и в приведенном по ссылке примере, просто "отрыть-закрыть" все компоненты таска. При этом видимо интерфейс форсирует рефреш связей с предками и потомками компонента и все становится на свои места.
22 янв 13, 11:30    [13807730]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Glory
Дэр Пароль
Glory,

RUNNING.

Значит нет никакого зависания.


Проблему решает перезапуск пакета.
Запускаемый запрос вручную возвращает результат за секунды.
А ночью может висеть в состоянии RUNNING несколько часов.
22 янв 13, 11:32    [13807750]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
gang
Дэр Пароль,

Не, мне кажется дело не в параметрах, а в кривизне механизма обновления внутренних связей между компонентами датафлоу таска при изменении одного\нескольких из них. Мне помогло, как и в приведенном по ссылке примере, просто "отрыть-закрыть" все компоненты таска. При этом видимо интерфейс форсирует рефреш связей с предками и потомками компонента и все становится на свои места.


Спасибо, попробуем такой вариант.
22 янв 13, 11:33    [13807755]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104760
Дэр Пароль
А ночью может висеть в состоянии RUNNING несколько часов.

Вы refresh то нажимаете ?
Или может не тот коннект смотрите ?
22 янв 13, 11:35    [13807768]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Glory
Дэр Пароль
А ночью может висеть в состоянии RUNNING несколько часов.

Вы refresh то нажимаете ?
Или может не тот коннект смотрите ?


Вроде практики хватает, чтобы понять, что я смотрю :)
22 янв 13, 11:36    [13807787]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104760
Дэр Пароль
Вроде практики хватает, чтобы понять, что я смотрю :)

И как RUNNING запрос может быть зависшим ?
22 янв 13, 11:38    [13807804]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Glory,

скажем так - нет видимых причин, чтобы так долго выполнялся запрос. Я не понимаю, что в это время происходит, и почему. Поэтому и задал вопрос на форуме - в какую сторону копать.
22 янв 13, 11:48    [13807914]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104760
Дэр Пароль
скажем так - нет видимых причин, чтобы так долго выполнялся запрос.

Возможно вы не увидели эти причины.
Например то, что запрос распараллелен и одна из нитей блокирована.
Или что запрос распределенный и блокирован на линкованном сервере.
И тп
22 янв 13, 11:52    [13807943]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34727
Блог
Необновленная статистика и в результате кривые планы запросов?

У нас было такое, когда имелась весьма большая таблица, старая статистика говорила, что данных за [дата1, дата2] нет, а они уже были, и их было много, миллионы строк. В результате формировался план с LOOP-соединением вместо HASH. И расчет шел 5-8 часов вместо часа.
22 янв 13, 12:10    [13808089]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Критик,

спасибо, но мы после переноса все индексы перестроили, статистику обновили. Попробуем еще раз везде пройтись заново.

У меня лично складывается мнение, что это либо SSIS себя так ведет, либо какой-то баг на системном уровне. Причем наиболее явно он проявляется при установке Desktop Experience для Win Server.
22 янв 13, 12:30    [13808257]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
LogrusAS
Member

Откуда: Киев
Сообщений: 195
В свое время, при написании программы на C# для некоторых запросов и при некоторых обстоятельствах обнаружил резкое ухудшение производительности по сравнению с выполнением такого же запроса в студии.
Зависело от погоды на Марсе. Обновление статистик, полная и избирательная реиндексация не помогали.

Причем именно поведение похожее на описанное.
Обычный SELECT с одним JOIN по первичному кластерному ключу.
Google прояснил, что проблема в драйвере ADO.
И в результате поиска рекомендаций, наблюдения за студией и т.д. выяснилось, что при подключении через ADO.NET рекомендуется также включить следующие параметры:
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON 
SET ANSI_NULL_DFLT_ON ON
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ANSI_NULLS ON
SET CONCAT_NULL_YIELDS_NULL ON

Мне помогло.
Но не уверен, что SSIS не делает того же. Давно от него отказался по ряду причин.

Второе, что также многократно обсуждалось на форуме "OLAP и DWH" - не использовать подключения ADO.NET, а использовать OleDB. В нем не проявляется таких глюков.

Кроме того после миграции на 2012 нашего SSAS сервера возникла еще одна странная проблема.
Часть данных из SSAS пользователи получали через процедуру генерирующую MDX запрос и отправляющую его прилинкованому SSAS серверу. Начиная с 2005 это работало без проблем. В 2012 в случае если сервер был не локальный, то с вероятностью 50/50 запрос не выполнялся, с объяснениями о нехватке прав на SSAS куб. Причем даже для пользователя с неограниченными правами. Решили сначала установкой рядом с SSAS SQL сервера, единственной задачей которого было - быть локальным. Потом, после проблем с накаткой SP1 вообще откатились обратно на 2008 R2.


Так что мест, где могут быть проблемы много. Попробуйте проверить те что я назвал.
22 янв 13, 13:21    [13808716]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
LogrusAS,

спасибо, в своих SSIS-пакетах мы используем Native OLE DB.

Насчет проблем на 2012 - мы уже уткнулись в одну, связанную с массовой рассылкой отчетов на SSRS, которая работала без проблем на 2005. Из-за того, что невозможно изменить таймаут для рассылки при соединении с доменным почтовым сервером, пришлось городить конструкцию с локальным SMPT-сервером, ему подсовывать отчеты, которые в дальнейшем отправлялись уже на домен.

Но вот эти зависания ночью реально не дают нам спать...Каждое утро лотерея - прогрузились данные или опять они в состоянии RUNNING :)
22 янв 13, 13:57    [13809109]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34727
Блог
LogrusAS, SET`ы также влияют на план.

Дэр Пароль, если у вас такое часто, то снимайте планы при успешной отработке и при неудаче. Сравнивайте.
22 янв 13, 14:34    [13809471]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012: зависают запросы в SSIS  [new]
Дэр Пароль
Member

Откуда: Moscow
Сообщений: 226
Причина оказалась в битом кабеле к дисковой библиотеке - это уже инженеры в логах оборудования откопали. Заменили, и теперь все работает как по-маслу :)
28 июн 13, 11:43    [14496411]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить