Skip to content

Поколоночные индексы - что это?

Пересказ статьи Monica Rathbun. What are Columnstore Indexes?


Майкрософт продолжает повышать производительность SQL Server, вводя новые возможности. В этой статье объясняется как работать с индексами поколоночного хранения - отличным от построчного способом хранить таблицы, который значительно улучшает производительность при определенной рабочей нагрузке.
Continue reading "Поколоночные индексы - что это?"

Использование предложения OUTPUT (для операторов Insert и Delete)

Пересказ статьи Mat Richardson. OUTPUT Clause Basics (For Inserts and Deletes)


При обработке сложных операторов insert, update и delete часто полезно знать, что изменилось - для аудита или чтобы вернуть значение в вызывающее приложение (например, ID или другое значение после вставки). Предложение OUTPUT в T-SQL позволяет вам сделать именно это, что действительно очень просто. Я покажу вам как!
Continue reading "Использование предложения OUTPUT (для операторов Insert и Delete)"

Почему Not Exist более осмыслен, чем Left Join

Пересказ статьи Erik Darling. Why Not Exists Makes More Sense Than Left Joins



Задача


Требуется найти строки в одной таблице, которым нет соответствия в другой таблице. Это может быть процесс сверки данных или же часть работы ETL, или еще что-то.
Continue reading "Почему Not Exist более осмыслен, чем Left Join"

Каждый план выполнения есть предполагаемый план

Пересказ статьи Grant Fritchey. Every Execution Plan Is An Estimated Plan



Давайте поговорим о различных планах, которые можно получить в SQL Server.

Предполагаемый план (Estimated Plan)


Для генерации этого плана вместо выполнения запроса, пакета, хранимой процедуры вы в SQL Server Management Studio (SSMS) используете кнопку “Display Estimated Execution Plan” (показать предполагаемый план выполнения).
Continue reading "Каждый план выполнения есть предполагаемый план"

Быстрей ли хранимые процедуры, чем автономные запросы?

Пересказ статьи Bert Wagner. Are Stored Procedures Faster Than Stand-Alone Queries?



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

Давайте обсудим почему.
Continue reading "Быстрей ли хранимые процедуры, чем автономные запросы?"

Пробелы, регистр символов и другие вещи, которые мешают повторному использованию плана

Пересказ статьи Bert Wagner. Whitespace, Letter Case, and Other Things That Prevent Plan Reuse



Помимо расхождения в пробелах, SQL Server не будет повторно использовать планы запросов по разнообразным причинам. Сейчас я покажу некоторые из наиболее общих сценариев, когда план не будет использоваться.
Continue reading "Пробелы, регистр символов и другие вещи, которые мешают повторному использованию плана"

Почему Parameter Sniffing не всегда плохо (хотя обычно так и есть)

Пересказ статьи Bert Wagner. Why Parameter Sniffing Isn’t Always A Bad Thing (But Usually Is)



С одной стороны, это хорошо: это означает, что SQL Server кэширует и повторно использует планы запросов, чтобы заставить их выполняться быстрее.

Parameter sniffing (прослушивание параметров) только тогда становится проблемой, когда кэшированный план далек от оптимального плана для заданных входных параметров.

Continue reading "Почему Parameter Sniffing не всегда плохо (хотя обычно так и есть)"

Понимание хеш соединений в MySQL 8

Пересказ статьи Tibor Korocz. Understanding Hash Joins in MySQL 8



В MySQL 8.0.18 появилась новая функция, которая называется Hash Join, и я захотел посмотреть, как она работает, и в каких ситуациях она может нам помочь.

В общих чертах операция состоит в следующем: при выполнении соединения в памяти создается хеш-таблица на базе одной из соединяемых таблиц, другая таблица читается построчно, вычисляется хеш и выполняется поиск по этому хеш-ключу в хеш-таблице, находящейся в памяти. Continue reading "Понимание хеш соединений в MySQL 8"

Как я использую планы выполнения в SQL Server для решения проблем

Пересказ статьи Bert Wagner. How I Troubleshoot SQL Server Execution Plans



Сегодня я подвожу итоги моей серии статей по планам выполнения SQL Server, рассматривая конкретные шаги, которые я предпринимаю при устранении проблем с медленно выполняющимися запросами.
Continue reading "Как я использую планы выполнения в SQL Server для решения проблем"

Операторы (итераторы) плана выполнения в SQL Server

Пересказ статьи Bert Wagner. SQL Server Execution Plan Operators



При исследовании плана выполнения запроса некоторые операторы возникают снова и снова в качестве виновников многих проблем с производительностью.
Continue reading "Операторы (итераторы) плана выполнения в SQL Server"