Skip to content

5 вещей, которые вам нужно знать для чтения планов выполнения в SQL Server

Пересказ статьи Bert Wagner. 5 Things You Need To Know When Reading SQL Server Execution Plans



Ссылки на статьи этой серии:

  1. Введение в планы выполнения SQL Server.

  2. Планы выполнения: статистика.

  3. Эта статья.

  4. Операторы плана выполнения в SQL Server.

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


Продолжить чтение "5 вещей, которые вам нужно знать для чтения планов выполнения в SQL Server"

Что на самом деле означает толщина стрелки в плане запроса

Пересказ статьи Brent Ozar. What the Arrow Sizes in Query Plans Really Mean


Несколько ранее я просил вас предположить, что означают стрелки в предварительном и актуальном планах. Я просил вас догадаться без проведения каких-либо исследований. И вот результаты:


Продолжить чтение "Что на самом деле означает толщина стрелки в плане запроса"

План выполнения: статистика

Пересказ статьи Bert Wagner. Execution Plans: Statistics



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

Введение в план выполнения SQL Server

Пересказ статьи Bert Wagner. Introduction to SQL Server Execution Plans



Я почти всегда использую планы выполнения в качестве отправной точки для решения проблем с производительностью запросов SQL.

Ссылки на статьи этой серии:

  1. Эта статья.

  2. Планы выполнения: статистика.

  3. 5 вещей, которые вам нужно знать при чтении планов выполнения в SQL Server.

  4. Операторы плана выполнения в SQL Server

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



Продолжить чтение "Введение в план выполнения SQL Server"

Это ведь NOLOCK хорошо, когда данные не меняются, правильно?

Пересказ статьи Brent Ozar. But NOLOCK Is Okay When The Data Isn’t Changing, Right?


Я уже объяснил, как NOLOCK дает случайные результаты, когда вы запрашиваете данные, которые изменяются. И это реально мощная демонстрация для тех, кто думает, что NOLOCK безопасно использовать на рабочем сервере. Однако мне неоднократно задавали вопрос:

Продолжить чтение "Это ведь NOLOCK хорошо, когда данные не меняются, правильно?"

Используете NOLOCK? Так вот вы и получаете неверные результаты запроса

Пересказ статьи Brent Ozar. Using NOLOCK Here’s How You’ll Get the Wrong Query Results.


Волшебный WITH(NOLOCK) в вашем запросе, похоже, заставляет его выполняться быстрее. А как насчет недостатков? Давайте разберемся.
Продолжить чтение "Используете NOLOCK? Так вот вы и получаете неверные результаты запроса"

Что такое "включенные столбцы" в некластеризованных индексах?

Пересказ статьи Michael Salzmann. ”Included columns” for non-clustered indexes explained


Microsoft SQL Server предоставляет возможность использовать "включенные столбцы" (Included columns) при создании некластеризованных индексов. В статье объясняется эта особенность, её плюсы и минусы.
Продолжить чтение "Что такое "включенные столбцы" в некластеризованных индексах?"

Под капотом SQL Server. Основы кэширования данных

Пересказ статьи Eduardo Pivaral. SQL Engine basics: Caching data



Ядро SQL Server выполняет замечательную работу по оптимизации производительности запросов, используя при этом различные методы, одним из которых является кэширование данных.
Продолжить чтение "Под капотом SQL Server. Основы кэширования данных"