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

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

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

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

Оптимизация запросов, передаваемых непосредственно

Пересказ статьи Bert Wagner. Optimizing for Ad Hoc Workloads Кэш планов выполнения — отличная вещь: после затраченных усилий на построение плана запроса SQL Server сохраняет этот план в кэше планов для повторного использования в дальнейшем.

Как перевести первые буквы каждого слова предложения в верхний регистр?

Эта задача возникла как осмысленный пример для демонстрации использования скалярных функций, табличных переменных и новых возможностей языка T-SQL. Итак, требуется создать функцию, которая будет делать первую букву каждого слова заглавной, а остальные — строчными. Условия: Слова разделяются единичными пробелами. Количество слов произвольно. Алгоритм: Разбиваем фразу на отдельные слова, которые помещаем в табличную переменную. Делаем первую …

Кардинальное число

Пересказ статьи Bert Wagner. Cardinality: Not Just For The Birds При построении индексов для ваших запросов порядок столбцов в ключе индекса имеет значение. SQL Server наиболее эффективно использует индекс, если данные в этом индексе сохраняются в том же порядке, какой требуется для вашего запроса при выполнении соединения (join), фильтрации (where), группировки (group by) или сортировки …

Настройка запросов: предложение IN

Пересказ статьи Arthur Daniels. Query tuning: The IN clause В статье рассматривается предложение IN и другой способ написания аналогичного запроса. Я не собираюсь утверждать, что IN лучше или хуже, чем другие конструкции T-SQL. Я просто хочу продемонстрировать, что он делает.

Остерегайтесь непреднамеренных изменений спецификаций столбца

Пересказ статьи Solomon Rutzky. Beware! Beware of Unintended Changes When Altering Columns! Я не помню, чтобы об этом конкретном поведении было много написано, поэтому полагаю, что могу упомянуть о нем. И хотя это поведение документировано, не думаю, чтобы многие догадывались о таком.