SomewhereSomehow's Notes

Фильтр по тегу: cardinality


USE HINT и FORCE_LEGACY / DEFAULT_CARDINALITY_ESTIMATION

Продолжаем рассматривать примеры использования хинтов при помощи USE HINT.

В этой заметке мы посмотрим, как управлять версией механизма оценки кардинальности с помощью хинтов FORCE_DEFAULT_CARDINALITY_ESTIMATION и FORCE_LEGACY_CARDINALITY_ESTIMATION.

Cardinality Estimation, СЕ (оценка кардинальности) – это оценка предполагаемого числа строк, которое будет обработано тем или иным оператором запроса. Оценка – один из ключевых факторов при построении плана запроса (более подробно я рассматривал эту тему в докладе кардинальность и планы выполнения). Оценку числа строк осуществляет компонент Cardinality Estimator.

До 2014 сервера, была всего одна версия этого компонента, разработанная для SQL Server 7.0, постепенно адаптируемая к новым версиям, но принципиально не меняющаяся. Со временем, разработчики сиквела поняли, что старую модель больше развивать нельзя – ее трудно расширять, трудно тестировать, любые изменения в одном месте могут приводить к поломкам в другом, кроме того, те предположения о реальности, которые были верны во времена SQL Server 7.0, сейчас устарели.

Начиная с SQL Server 2014 у сервера появилась новая модель оценки строк, адаптированная к современным рабочим нагрузкам. Эта модель оценки имеет новую архитектуру, расширяема и дополняема, версия этой модели получила номер 120 (по аналогии с уровнем совместимости БД, соответствующим серверу 2014 – 120). В 2016 сервере современная модель была расширена и получила номер версии 130, при этом версия 120 сохранилась. В еще не вышедшем, на момент написания статьи, RTM сервере vNext уже есть модель версии 140.

Читать дальше...
добавлено: 05 фев 17 просмотры: 770, комментарии: 0



www.QueryProcessor.com

добавлено: 07 май 14 просмотры: 1520, комментарии: 0



www.QueryProcessor.com

Join Containment Assumption and CE Model Variation

Если вам интересны недокументированные вещи. интересно как понимать и интерпретировать оценки кардинальности - вам в мой новый блог - http://www.queryprocessor.com/

А когда вы все прочитаете - откроется истина изменения старого на новое - с вариациями моделей - читайте: http://www.queryprocessor.com/ce_join_base_containment_assumption/
добавлено: 04 май 14 просмотры: 1123, комментарии: 0



www.QueryProcessor.com

А вы знали о вариации модели в SQL Server 2014, которая создает фильтрованную статистику "на лету"?
Спорю что нет!

ПИшете запрос с предикатом (where a = 1) - а если если есть выгода от создания фильтрованной статистики - она может создаваться на лету!

Но не все так радужно!
За подробностями: Добро пожаловать в мой новый блог - www.QueryProcessor.com
Статья: Filtered Stats and CE Model Variation
добавлено: 04 май 14 просмотры: 1162, комментарии: 0



Cardinality Estimation Framework 2014 First Look

Картинка с другого сайта.

На прошедшем мероприятии SQLSaturday #261 - Moscow 2013 я рассказывал о том, как оптимизатор оценивает предполагаемое число строк и на основании этого строит план запроса. Иными словами я говорил про оценки кардинальности, и разумеется, не смог обойти вниманием новую версию механизма оценки кардинальности в SQL Server 2014.

Информации на эту тему пока довольно мало, в конце заметки я приведу список всех известных мне на сегодня статей на эту тему. Информации из первоисточников пока нет вовсе, надеюсь, с официальным выходом SQL Server 2014 ситуация изменится в лучшую сторону.

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

Читать дальше...
добавлено: 08 дек 13 просмотры: 898, комментарии: 0