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

Откуда: Москва
Сообщений: 1139
Добрый день,


есть кусок кода, там несколько выборок и несколько Merge команд. Выполняется около секунды.
Если я пихаю этот же кусок кода в функцию, которая возвращает таблицу, то он выполняется 18-20 секунд.

Повторял уже раз 10. Всегда одно и тоже.
Никто не знает, это какая-то особенность функций?
27 окт 15, 11:12    [18331535]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gena928
Никто не знает, это какая-то особенность функций?

Ага.И не только у функций. Называется - "другой план выполнения"
27 окт 15, 11:14    [18331543]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
Gena928
Member

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

никак не лечится?
27 окт 15, 11:15    [18331550]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
Glory
Member

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

никак не лечится?

Разумеется.
Сначала узнают, каков план выполнения. А потом улучшают его.
27 окт 15, 11:18    [18331558]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Gena928
несколько Merge команд

Gena928
пихаю этот же кусок кода в функцию
MERGE - в функцию??? Как так?
27 окт 15, 11:20    [18331567]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Gena928
несколько Merge команд

Gena928
пихаю этот же кусок кода в функцию
MERGE - в функцию??? Как так?
Хотя, если речь о табличных переменных, то можно. Но зачем?
27 окт 15, 11:28    [18331614]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
Gena928
Никто не знает, это какая-то особенность функций?
Не получится поставить диагноз по симптомам "у меня есть два разных фрагмента кода, один работает быстро, а другой медленно, в чём дело?" Нужны хоть какие то подробности.

Функция сама по себе не добавляет торможения выполняемому внутри неё коду.
Но код всё таки наверняка разный, ну и от окружения планы выполнения зависят, т.е. перенос даже одинакового текста в функцию, процедуру, под другого пользователя, на другой сервер, может менять эти планы.
27 окт 15, 13:16    [18332355]     Ответить | Цитировать Сообщить модератору
 Re: Функция медленно работает, а тот же код на листе - мгновенно. Что это?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Gena928,

волшебной палочки нет, нужен анализ проблемы.
27 окт 15, 14:48    [18333101]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить