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

Откуда:
Сообщений: 50
Проблема: имеется SELECT с использованием конструкции CROSS APPLY которая "цепляет" табличную функцию. В Managment Studio запрос отрабатывает меньше секунды. При его выполнении через технологию OLEDB время ожидания минут 40 составляет.
Вызов запроса необходимо осуществить в старом adp проекте ACCESS-а. Поэтому OLEDB не "обойти". База SQL Server 2005 c SP4.
Help Me!
20 май 15, 12:56    [17665978]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
При его выполнении через технологию OLEDB время ожидания минут 40 составляет.

OLEDB не выполняет запросы. Потому что их выполняет сервер.
20 май 15, 12:57    [17665989]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Это Я и сам знаю. Прошу помочь конкретным советом.
20 май 15, 12:59    [17666001]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Это Я и сам знаю.

А пишите почему то противоположное

Yura__2000
Прошу помочь конкретным советом.

Производительность запроса на сервере не зависит от клиентского драйвера.
20 май 15, 13:00    [17666016]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Я бы тоже поумничал на этот счет. Но факт остается фактом. Запрос один в один. А производительность разная. Поэтому и вопрос задаю.
20 май 15, 13:02    [17666037]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Я бы тоже поумничал на этот счет.

Так вы уже

Yura__2000
Но факт остается фактом.

Факт чего ?

Yura__2000
Запрос один в один. А производительность разная. Поэтому и вопрос задаю.

Вы узнали, что "Запрос один в один" потому что сами так решили ? Или может в Профайлере увидели текст, который получил сервер ? Может вы еще и планы там сравнили ?
20 май 15, 13:04    [17666052]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7869
Yura__2000, если SQL выполняет запрос быстро, то есть смысл его задать в конференции по ACCESS.
20 май 15, 13:04    [17666053]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
ЦБ
Member [заблокирован]

Откуда:
Сообщений: 2773
Yura__2000
В Managment Studio запрос отрабатывает меньше секунды. При его выполнении через технологию OLEDB время ожидания минут 40 составляет.
Уверены, что в МС запрос ПОЛНОСТЬЮ выполняется "меньше секунды"?
Вывод результата в МС идёт асинхронно выполнению ... - может увидели первые итоговые данные и считаете, что уже выполнился?

И это именно запрос? Не вызов ХП?
20 май 15, 13:07    [17666072]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Дело не в Access-е. Я запрос выполнял и через oledb command NET-а. Результат тот же. А при выполнении через sqlcomand все работает быстро.
20 май 15, 13:08    [17666086]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Да это именно вызов SELECT-а, а не XP. Может перевести на XP. Но что то подсказывает, что не в этом дело
20 май 15, 13:10    [17666097]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Я запрос выполнял и через oledb command NET-а. Результат тот же. А при выполнении через sqlcomand все работает быстро.

А вы не смотрели при этом на расписание местных электричек ? Может они тоже влияют на то, как сервер будет выполнять запрос ?
20 май 15, 13:11    [17666102]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Я подумаю над ваши предложением! Еще идеи есть?
20 май 15, 13:16    [17666139]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Я подумаю над ваши предложением! Еще идеи есть?

Начать анализировать то, что действительно происходит на сервере, а не моделировать это у себя в голове ?
20 май 15, 13:17    [17666149]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
В этом Вы конечно правы и планы выполнения действительно разные. Будем разбирать. Всем спасибо ...
20 май 15, 13:22    [17666194]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Проблема, решена. Может кому будет интересно. Прогуглил интернет, нашел статью, в которой объяснялось, что OLEdb устаревший провайдер, у которого есть проблемы с получением метаданных SELECT запроса с конструкцией CROSS APPLY. Поэтому рекомендовали либо отказаться от CROSS APPLY и перейти на коррелированные подзапросы, либо использовать другой драйвер подключения. Я использовал в своей задаче ODBC SQL Native. Все заработало.
22 май 15, 07:03    [17674179]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Прогуглил интернет, нашел статью, в которой объяснялось, что OLEdb устаревший провайдер, у которого есть проблемы с получением метаданных SELECT запроса с конструкцией CROSS APPLY

Никакие метаданные не выбираются 40 минут. Особенно если " планы выполнения действительно разные"
22 май 15, 08:40    [17674399]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Тем не менее. Кстати на вашем форуме уже подымалась эта тема. Тема закрыта.
22 май 15, 08:48    [17674426]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Тем не менее.

Что "тем не менее" ? Вы пересказываете сомнительное высказывание из неизвестный источника
Метаданные получаются на этапе компиляции запроса и построения плана.
Никогда сервер не будет строить план 40 минут

Yura__2000
Кстати на вашем форуме уже подымалась эта тема.

Тема получения метаданных OLEDB провайдером ?
22 май 15, 08:52    [17674443]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Тема закрыта, моя задача была - решить конкретную проблему. Проблема решена. Тема закрыта. Как там у классика - "и опыт сын ошибок трудных ... парадоксов друг".
22 май 15, 09:05    [17674520]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Тема закрыта, моя задача была - решить конкретную проблему.

Ну вот тогда и пишиет что задача решена заменой драйвера. И не пишите ничего про неизвестные вам причины изменения плана выполнения
22 май 15, 09:06    [17674528]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
По совету "Владислав Колосов" Я обратился на форум Access, где мне подсказали, что Access может иногда менять сложные запросы источника данных "по своему" усмотрению. От сюда и разные планы выполнения. Возможно причина в этом
22 май 15, 09:17    [17674600]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
что Access может иногда менять сложные запросы источника данных "по своему" усмотрению.

И вы увидели, что MSSQL получил от Access не тот текст запроса, который вы написали ?

Yura__2000
От сюда и разные планы выполнения. Возможно причина в этом

Вы опять спекулируете
22 май 15, 09:22    [17674637]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Yura__2000
Member

Откуда:
Сообщений: 50
Ладно, хватит флудить в пустую. Нет никакой спекуляции. Хотел просто решить проблему ...
22 май 15, 09:29    [17674676]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
Glory
Member

Откуда:
Сообщений: 104760
Yura__2000
Ладно, хватит флудить в пустую. Нет никакой спекуляции. Хотел просто решить проблему ...

Еще раз - вы нашли workaround, но вы НЕ нашли причину(!) изменения плана. Поэтому и не тут постить измышления про эти причины. Причем еще и не ваши собственные.
22 май 15, 09:31    [17674691]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа CROSS APPLY через OLEDB  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Yura__2000
Проблема: имеется SELECT с использованием конструкции CROSS APPLY которая "цепляет" табличную функцию. В Managment Studio запрос отрабатывает меньше секунды. При его выполнении через технологию OLEDB время ожидания минут 40 составляет.
Вызов запроса необходимо осуществить в старом adp проекте ACCESS-а. Поэтому OLEDB не "обойти". База SQL Server 2005 c SP4.
Help Me!


Объем данных какой? Может какая-то сетевая фигня, а план тут не причём вообще?
22 май 15, 14:27    [17676926]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить