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

Откуда:
Сообщений: 23
День добрый!
Подскажите, в чем может быть проблема. Есть 2 большие таблицы (10М+ записей), по ним созданы 2 функции, возращающие табличные значения, в которых используются union. Когда статистика по индексам пересчитана не очень давно - запросы отрабатываются моментально, однако проходит около суток и появляется жесткий тупняк. Профайлер показывает абсолютно разные планы запросов. Иногда помогает просто пересоздать функцию - после пересоздания в течение порядка суток всё работает быстро, затем опять тормозит. Поставил в планировщик ночью пересчет статистики, но всё-равно под утро пока не пересоздашь функцию запрос работает по неоптимальному плану.
Подскажите, как побороть данную ситуацию, а именно заставить использовать оптимальный план запроса?
15 авг 13, 11:48    [14711991]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
вы бы прислали функции, запрос, плохой, хороший план, структуру таблиц
15 авг 13, 11:57    [14712053]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Junk
Поставил в планировщик ночью пересчет статистики, но всё-равно под утро пока не пересоздашь функцию запрос работает по неоптимальному плану.

После команд пересчёта статистики добавьте команды "sp_recompile ИмяТаблицы", указав таблицы с обновлёнными статистиками.
См. http://msdn.microsoft.com/en-us/library/ms181055.aspx , заметку про AUTO_UPDATE_STATISTICS.
15 авг 13, 12:09    [14712131]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Junk
Member

Откуда:
Сообщений: 23
Гость333,

Правильно ли я понимаю, что если AUTO_UPDATE_STATISTICS поставить в OFF, то план не будет пересчитываться при увеличении количества записей, а только при sp_recompile?
15 авг 13, 12:31    [14712336]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Junk
Member

Откуда:
Сообщений: 23
Опять возвращаюсь к этой теме. Теперь ситуация вообще странная - в SQL Managment Studio запрос к функции выполняется с оптимальным планом, а из приложения - с неоптимальным. Перезапуск приложения не помогает. Из профайлера забрал строку вызова функции и исполнил в Managment Studio - получил быстый результат по оптимальному плану. Что может быть не так и как с этим бороться?
18 сен 13, 15:36    [14855060]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
Junk
Что может быть не так и как с этим бороться?

Настройки SET соединения, например
18 сен 13, 15:40    [14855106]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6202
Надо, наверное, ту статью куад-то в фак прикрепить. Не так давно аналогичная по смыслу тема всплывала.
18 сен 13, 15:44    [14855144]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Гость333
Member

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

Медленно в приложении, быстро в SSMS
18 сен 13, 15:44    [14855150]     Ответить | Цитировать Сообщить модератору
 Re: изменение плана запроса  [new]
Junk
Member

Откуда:
Сообщений: 23
Спасибо, пошел курить статью. И правда неплохо было бы в фак ее запихнуть.
18 сен 13, 17:47    [14856096]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить