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

Откуда: Москва
Сообщений: 115
Коллеги, помогите разобраться с проблемой.
Сделаю data flow по переносу данных из одной SQL таблицы в другую.
Если в OLE DB SOURCE запрос полностью написать руками, то все работает нормально.
А если с параметрами (которые типа DateTime) то все мертво висит на фазе Pre-Execute.
16 мар 15, 16:17    [17390347]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mbabkin
Коллеги, помогите разобраться с проблемой.
Сделаю data flow по переносу данных из одной SQL таблицы в другую.
Если в OLE DB SOURCE запрос полностью написать руками, то все работает нормально.
А если с параметрами (которые типа DateTime) то все мертво висит на фазе Pre-Execute.
Нам предстоит угадать как вы там параметры прописываете?
16 мар 15, 22:44    [17392027]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4822
mbabkin,


Вы запрос с вой с параметром испытывали? Он за сколько отрабатывает? Индекс там есть?
17 мар 15, 14:38    [17394822]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
mbabkin
Member

Откуда: Москва
Сообщений: 115
a_voronin,

Если в OLE DB Source условие в запросе написать так:
WHERE l1.TRANSDATE >= '20150101'
AND l1.TRANSDATE <= '20150131'
то пакет отрабатывает за 7 минут.
Если с параметрами
WHERE l1.TRANSDATE >= ?
AND l1.TRANSDATE <= ?
то отрабатывает за 20.

Индексы здесь вообще не причем.
17 мар 15, 16:11    [17395445]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
Glory
Member

Откуда:
Сообщений: 104751
mbabkin
Если с параметрами
WHERE l1.TRANSDATE >= ?
AND l1.TRANSDATE <= ?
то отрабатывает за 20.

А вы запускали в студии этот запрос с параметрами, а не с константами ?
17 мар 15, 16:13    [17395463]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mbabkin
a_voronin,

Если в OLE DB Source условие в запросе написать так:
WHERE l1.TRANSDATE >= '20150101'
AND l1.TRANSDATE <= '20150131'
то пакет отрабатывает за 7 минут.
Если с параметрами
WHERE l1.TRANSDATE >= ?
AND l1.TRANSDATE <= ?
то отрабатывает за 20.

Индексы здесь вообще не причем.
Гуглите "parameter sniffing", этот вопрос уже обсуждался 100500 раз.
Самое простое, это воткнуть OPTION(RECOMPILE), но у этого способа есть свои недостатки.

Ну и смотрите планы, и использование индексов конечно.
17 мар 15, 19:46    [17396458]     Ответить | Цитировать Сообщить модератору
 Re: SSIS Виснет пакет  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4822
mbabkin
Индексы здесь вообще не причем.


Очень даже причём. У вас index по полю TRANSDATE есть?

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

Если выбирать за месяц, это будет дольше, чем выбирать за неделю.
17 мар 15, 20:09    [17396544]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить