Адаптивная обработка запросов в SQL Server 2017

Пересказ статьи Роберта Шелдона Adaptive Query Processing in SQL Server 2017 До версии SQL Server 2017, если план запроса содержал некорректную оценку кардинального числа (число обрабатываемых строк), ядро базы данных продолжало использовать этот план при каждом выполнении оператора, пока этот план сохранялся в кэше, что часто приводило к падению производительности. Например, план выполнения мог зарезервировать …

Использование индексов

Индекс создается командой create index и непосредственно недоступен пользователю. Индексы используются оптимизатором запросов для доступа к данным в базовых таблицах и представлениях. Индексы бывают двух видов — кластеризованные и некластеризованные. Некластеризованный индекс — это вспомогательная таблица, которая содержит данные столбца/столбцов (ключ индекса), по которым индексируется базовая таблица и указатель (RID) на данные в таблице, соответствующие …

Разница между Rollup и Cube

Пересказ статьи Ben Richardson. The Difference Between Rollup and Cube Предложение GROUP BY используется для группировки результатов агрегатных функций по заданному столбцу. Однако предложение GROUP BY не выполняет операции агрегации на множестве уровней иерархии. Например, вы можете вычислить суммарную зарплату сотрудников для каждого отдела компании (один уровень иерархии), но не можете вычислить общую зарплату всех …

Новости за неделю
2019-08-17 — 2019-08-23

§ Популярные темы недели на форуме Топик Сообщений 17 (Learn) 5 19 (SELECT) 4 46 (SELECT) 4 5 (Learn) 3 7 (Learn) 3 § Авторы недели на форуме Автор Сообщений Igor_lai 21 Kursist 14 c306cp 9 arabsheyh 8 migdal-or 4 § Изменения среди лидеров Рейтинг Участник (решенные задачи) 39 Vizitor (261) § Претенденты на попадание …

Как правильно использовать динамический SQL

Пересказ статьи Thom Andrews. Dos and Don’ts of Dynamic SQL Динамический SQL может быть невероятно мощным инструментом при надлежащем использовании, однако он может стать также невероятной прорехой в безопасности или привести к утомительной отладке при плохом написании. Ниже приводится несколько плохих и хороших примеров, которые помогут вам при написании динамических операторов.

Оконные функции против GROUP BY

Пересказ статьи Bert Wagner. Window Functions vs GROUP BYs Имеется много направлений улучшения производительности запроса: индексы, статистика, конфигурационные параметры и т.д. Однако не всегда имеющиеся условия позволяют вам использовать эти возможности (например, базы данных компаний-поставщиков), оставляя только одну возможность — переписать запрос.

Что такое неявное преобразование?

Пересказ статьи Monica Rathbun. What is Implicit Conversion? Это еще одна небольшая публикация по поводу простых изменений, которые вы можете сделать в своем коде, чтобы получить более оптимальный план выполнения. На этот раз речь пойдет о неявных преобразованиях. Неявное преобразование происходит, когда SQL Server должен автоматически преобразовать данные из одного типа в другой при сравнении …

Новости за неделю
2019-07-27 — 2019-08-02

§ Популярные темы недели на форуме Топик Сообщений 14 (SELECT) 8 149 (Learn) 7 66 (Learn) 6 32 (Learn) 4 45 (SELECT) 3 § Авторы недели на форуме Автор Сообщений Delan 5 selber 5 Gosha 4 Kursist 4 Vizitor 4 § Изменения среди лидеров Рейтинг Участник (решенные задачи) 10 Kursist (256) 40 vasilyvanc (144) 90 DoNotLook (162) § Претенденты на попадание в TOP 100 Рейтинг Участник (решенные …

Сканирование индекса — не всегда плохо, а поиск по индексу — не всегда хорошо

Пересказ статьи Brent Ozar. Index scans aren’t always bad, and index seeks aren’t always great Когда-нибудь вам говорили, что: Поиск по индексу (Index seeks) является быстрой малозатратной операцией. Сканирование таблиц (table scan) — убогие, медленные операции. И с тех пор вы при анализе плана выполнения выискивали эти существенно влияющие на производительность сканирования кластерного индекса. А …