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

Откуда:
Сообщений: 13
День добрый, коллеги.

Имею "лавровских" дба-шников. надежды на них никакой. помогите куда копать чтобы разобраться.
была база на 2008R2. система тихо скатывалась в тар тарары. запросы все больше и больше тормозили. делал тупую аналитику на предмет
select *
into mynewtable
from myoldtable

высчитывал время копирования по размеру выходило 38мегабайт в сек. серва на вм. постоянно пинал админов - у тех: везде цветут розы.

купили новый мощный сервак. все серваки (старый и новый) в датацентре. поставили на него esx и новый 2016 машину.

проверил io - круть 365 мегабайт в секудну. ну думал заживу. ан нет. не тут то было.

старые запросы встают раком. смотрю план - все шоколадно: обычный банальный джойн на 5 таблиц, 4 из 5 индекс сики. 1 индекс скан. но запрос подвисает на 60 сек и выдает 5400 записей. если убрать одно из условий или одну (лишнюю таблицу) то отрабатывает за 1 сек и выдает 64 000 записей.

на старом сервере подобный запрос возвращал 1.8М записей за 14 сек.

написал дба -в ответ премутация от такого кол-ва джойнов. разбивай на мелкие временные таблицы.

что делать? куда копать? планы одинаковые на обоих серверах.
18 фев 19, 17:20    [21813447]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
индексы после рестора были пересобраны.

план в аттаче

К сообщению приложен файл. Размер - 95Kb
18 фев 19, 17:22    [21813452]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
OPTION(FORCE ORDER) заставляет работать как надо. придется вставлять в запросах.
18 фев 19, 17:39    [21813478]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Владислав Колосов
Member

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

если Вам не нужны новые фичи - поставьте уровень совместимости базы 110. Сервер переключит планировщик запроса в прежний режим. Но лучше разберитесь с самими запросами, статистиками и индексами.
18 фев 19, 18:13    [21813543]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8711
Deesy
День добрый, коллеги.

Имею "лавровских" дба-шников. надежды на них никакой. помогите куда копать чтобы разобраться.
была база на 2008R2. система тихо скатывалась в тар тарары. запросы все больше и больше тормозили. делал тупую аналитику на предмет
select *
into mynewtable
from myoldtable



старые запросы встают раком. смотрю план - все шоколадно: обычный банальный джойн на 5 таблиц, 4 из 5 индекс сики. 1 индекс скан. но запрос подвисает на 60 сек и выдает 5400 записей. если убрать одно из условий или одну (лишнюю таблицу) то отрабатывает за 1 сек и выдает 64 000 записей.

на старом сервере подобный запрос возвращал 1.8М записей за 14 сек.

написал дба -в ответ премутация от такого кол-ва джойнов. разбивай на мелкие временные таблицы.

что делать? куда копать? планы одинаковые на обоих серверах.


Похожая хрень "вылечилась" при переходе с MSSQL2000 на MSSQL2008 сама. Тут наоборот. "Они возвращаются", триллер
По-серьёзному, здесь долго мусолился разбор похожего полёта из серии "какого хрена" ,- выяснилась что проблема в том, как оптимизатор понимает статистику и в каком порядке и как строит джоины. Если не изменяет склероз. Сошлись на опциях/хинтах либо на переписывании запросов. Сам в таких случаях всовываю WITH CTE as (...) ... ,- как правило помогает...
18 фев 19, 18:25    [21813569]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
a_voronin
Member

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

А сначала протестировать апгрейд в голову мысль не пришла?

Вы статистику хоть обновили после апгрейда?
18 фев 19, 19:53    [21813671]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
Владислав Колосов,
с фичами новыми вроде тоже неплохо. пример try_cast. грузят они данные в таблицу с полем arn numeric(23) (которое совсем не сиквенс, но зато наши сильные поставили на него кластерный индекс), а у меня в таблице, пришлось поле делать varchar(23) так как какой-то больной решил вместо номера заливать туда буквы тоже. в итоге попросил их изменить на varchar и переделать на норм индекс - тишина. "д--лы блин". вот приходится try_cast подключать

SIMPLicity_,
индексы со статистикой сразу пересобрали. но видать где-то еще имеем геморр. про cte попробую, спс. но вот судя по всему переписывание запроса с фиксацией порядка помогает. часть запросов уже полетела. а те все заладили, больше 5-ти не собираться...


a_voronin,
да ну что, вы! нам голова не для этого. мы в нее только едим. :)
тест ставили. пилили по-быстрому. все что можно быстро проверили. я кричал много раз что проблемы с перформансом, сказали переключимся там будем решать. переключили и амба...
18 фев 19, 20:13    [21813688]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
invm
Member

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

План картинкой, да без текста запроса бесполезен.
Можно только сказать, что проблемы начинаются с PE_Auth_Data - оценка кардинальности очень сильно расходится с реальностью.
18 фев 19, 21:23    [21813727]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Владислав Колосов
Member

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

а вроде бы была возможность отключить предсказание кардинальности флагом трассировки?
19 фев 19, 10:47    [21814050]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
invm,

а вроде бы была возможность отключить предсказание кардинальности флагом трассировки?

можно переключить базу на legacy CE. Ну и TF
Trace Flag : 9481
Function: Forces the query optimizer to use the SQL Server 2012 version of the cardinality estimator when creating the query plan when running SQL Server 2014 with the default database compatibility level 120
19 фев 19, 11:14    [21814089]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
TaPaK
Trace Flag : 9481
Function: Forces the query optimizer to use the SQL Server 2012 version of the cardinality estimator when creating the query plan when running SQL Server 2014 with the default database compatibility level 120
C 2016 устанавливается настройкой LEGACY_CARDINALITY_ESTIMATION для всей базы. Так же есть хинт на уровне стейтмента.

Сообщение было отредактировано: 19 фев 19, 11:21
19 фев 19, 11:20    [21814097]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Гавриленко Сергей Алексеевич
TaPaK
Trace Flag : 9481
Function: Forces the query optimizer to use the SQL Server 2012 version of the cardinality estimator when creating the query plan when running SQL Server 2014 with the default database compatibility level 120
C 2016 устанавливается настройкой LEGACY_CARDINALITY_ESTIMATION для всей базы. Так же есть хинт на уровне стейтмента.

а я как сказал?
19 фев 19, 11:22    [21814100]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
спасибо господа. зареквестил пермишен на traceon ибо не хочу пока выставлять глобально на базу. сообщу.
19 фев 19, 12:27    [21814200]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
Deesy
зареквестил пермишен на traceon ибо не хочу пока выставлять глобально на базу. сообщу.
Зареквестили выставить глобально на сервер (на все базы), потому что не хотите пока выставлять глобально на базу?
Однако.
19 фев 19, 12:58    [21814235]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
вписать тф хинтов и прогнать пару запросов вроде как попроще чем сразу ставить на базу? нет?
19 фев 19, 13:19    [21814256]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
Deesy
вписать тф хинтов и прогнать пару запросов вроде как попроще чем сразу ставить на базу? нет?
Угу, очевидный путь - поставить хинт в запрос.
А потом уже ставить на базу, или на весь сервер, если на запрос недостаточно (если атких много).
19 фев 19, 13:22    [21814258]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Deesy
Member

Откуда:
Сообщений: 13
да. с хинтом работает вроде пока. тестирую дальше. спасибо большое
19 фев 19, 13:55    [21814303]     Ответить | Цитировать Сообщить модератору
 Re: после переезда с 2008R2 на 2016 тупят запросы  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Deesy
зареквестил пермишен на traceon

нехилый такой пермишн потребуется.
для DBCC TRACEON надо быть сисадмином.
------
меняйте CL на базе в 100,
альтера на базу хватит.
а вы, похоже, и вовсе db_owner
19 фев 19, 17:35    [21814628]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить