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

Откуда:
Сообщений: 32
Здравствуйте.
Столкнулся с проблемой - запрос, который прекрасно выполнялся в sql 2008 и 2012 стал жутко тормозить в 2016. После установки флага 9481 снова стал выполняться нормально. Почитал про СЕ 2016, но мало что понял (в смысле как это использовать при написании запросов).
Может кто-нибудь подскажет из личного опыта какие паттерны работают плохо в 2016 и наоборот best practice для 2016.
И может быть какие-нибудь статьи про СЕ 2016 с практическими примерами написания запросов.

Спасибо.
22 май 18, 11:17    [21428117]     Ответить | Цитировать Сообщить модератору
 Re: Cardinality Estimator SQL 2016  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Gorr,

вы точно понимаете что делает ce? А то вопрос про паттерны хорошо/плохо смущает
22 май 18, 11:22    [21428139]     Ответить | Цитировать Сообщить модератору
 Re: Cardinality Estimator SQL 2016  [new]
Gorr
Member

Откуда:
Сообщений: 32
Я надеюсь что понимаю. У меня есть запрос, состоящий из нескольких join, ничего особенного. Так вот именно он ведет себя столь по разному, поэтому я спросил про паттерны (ну например не использовать больше N join в запросе и т.п.)
22 май 18, 11:37    [21428219]     Ответить | Цитировать Сообщить модератору
 Re: Cardinality Estimator SQL 2016  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Gorr
какие паттерны работают плохо в 2016

Те, которые в плане запроса выдают merge join вместо hash join, это же очевидно.
И наоборот - раньше inner join из несколько таблиц выдавал spill into tempdb, теперь все помещается в нужный кусок правильно запрошенной по размеру оперативной памяти.
22 май 18, 11:42    [21428241]     Ответить | Цитировать Сообщить модератору
 Re: Cardinality Estimator SQL 2016  [new]
aleksrov
Member

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

Так вы и смотрите планы, почему у вас в одном случае долго, а в другом быстро.
Если уж говорить про CA новый и join, то по сравнению со старым он оценивает более точно.
22 май 18, 11:43    [21428243]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить