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

Откуда:
Сообщений: 36439
Коллеги.
Мы тут со скрипом таки преползли на новый сервер.
После этого некоторые (не все) запросы стали тормозить, например, вместо 2 минут стало 10.
Посмотрел на их планы, а там страх какой-то. Неправильно все. А в 2000 все было более-менее.
Как с этим бороться?
Для себя вижу:
1. Обновить статистику.
2. Очистить кеэ.

Что еще?
Да, предлагать переписать запросы правильно не надо, никто уже не помнит зачем они такие.
23 сен 14, 15:19    [16610881]     Ответить | Цитировать Сообщить модератору
 Re: После перехода с 2000 на 2012 полетелы планы запросов  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
обязательно это
жЫвоглот
1. Обновить статистику.


И на 90% вот это тоже придется делать
жЫвоглот
Да, предлагать переписать запросы правильно не надо, никто уже не помнит зачем они такие.

, так как оптимизатор поменялся полностью и думает совсем по другому и заставить его думать как 2000 вы уже не сможете.
23 сен 14, 17:28    [16611803]     Ответить | Цитировать Сообщить модератору
 Re: После перехода с 2000 на 2012 полетелы планы запросов  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
Постараюсь обойтись малой кровью
23 сен 14, 18:13    [16612046]     Ответить | Цитировать Сообщить модератору
 Re: После перехода с 2000 на 2012 полетелы планы запросов  [new]
Crimean
Member

Откуда:
Сообщений: 13147
я подозреваю, что индексы пересмотреть придется. благо есть include поля. и dmv, хорошо подсказывающие, что нужно
23 сен 14, 18:31    [16612161]     Ответить | Цитировать Сообщить модератору
 Re: После перехода с 2000 на 2012 полетелы планы запросов  [new]
жЫвоглот
Member

Откуда:
Сообщений: 36439
Crimean, возможно придется.
Чистка статистики не помогла.
24 сен 14, 10:40    [16614292]     Ответить | Цитировать Сообщить модератору
 Re: После перехода с 2000 на 2012 полетелы планы запросов  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
жЫвоглот,

Качественные изменения оптимизатора были при переходе с 2000 на 2005, дальше, до 2012, тоже были изменения, хоть и не так много. Так что суммарно, в оптимизаторе, от 2000 до 2012 изменилось довольно много.

Очень часто раньше, особенно в системах, которые давно живут, все прибивали жестко хинтами, посмотрите, нет ли у вас такой ситуации? Возможно, в 2000 без этого было никак, а сейчас, это только стесняет оптимизатор при выборе плана. Если в проблемных запросах есть хинты - уберите их.

Иногда, сброс кэша планов может приводить к потере производительности, не только за счет ресурсов на компиляцию, но и просто потому, что планы строятся для других значений параметров, например. Т.е. имеет место быть негативное прослушивание параметров. Посмотрите, имеют ли "тормозящие" запросы планы построенные для наиболее типичных значений параметров.

Если это все не про вас, то, боюсь, придется разбираться с каждым случаем в отдельности, надеюсь, их не очень много, т.к. универсальной кнопки нет.

Ну и кстати, вполне могут быть случаи, когда "старый" оптимизатор, справлялся лучше "нового". Для таких случаев в "новом" есть много способов заставить его работать также или лучше чем "старый". Начиная от того, что многие запросы теперь можно писать гораздо проще и легче чем раньше, т.к. появились новые возможности языка, например, такие как оконные функции, и заканчивая тонкими механизмами настроек, вроде тех же хинтов или руководств планов.
24 сен 14, 11:07    [16614484]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить