12.3.26

Без новых индексов или изменений схемы - запросы быстрее в 10 раз с Batch Mode для Rowstore (Часть 4)

Автор: Luca Biondi, SQL Server: No New Index. No Schema Changes. 10x Faster Queries – SQL Server Batch Mode on Rowstore Deep Dive!! Part 4!

Надеюсь, вам нравится эта серия. Я искренне верю, что она может быть очень полезной для тех, кто профессионально использует SQL Server, как это делаю я уже более 20 лет (как летит время!).

Сегодня мы поговорим о пакетном режиме для строчного хранения (Batch Mode on Rowstore) и о том, как сделать ваш запрос в 10 раз быстрее без добавления каких-либо индексов.

Что ж... в Части 3 мы представили колоночные индексы и увидели, как выполнение в пакетном режиме может кардинально улучшить аналитические запросы.

Если вы пропустили предыдущую часть, вы можете прочитать её здесь:

👉 Фильтрованный индекс против индексированного представления и индекса с хранением в колонках (Часть 3)

Но вот в чём поворот.

Начиная с SQL Server 2019, вам не всегда нужен колоночный индекс, чтобы получить производительность пакетного режима.

SQL Server может активировать пакетный режим для строчного хранения.

И иногда... как я сказал вам в начале этой статьи... ваш запрос становится в 5 или 10 раз быстрее без добавления ни одного индекса. Поэтому я предлагаю вам продолжить чтение...

11.3.26

Логические чтения не повторяемы на колоночных индексах (эх...)

Автор: Brent Ozar, Logical Reads Aren’t Repeatable on Columnstore Indexes. (sigh)

Иногда я действительно ненавижу свою работу.

Вечно, ВЕЧНО, я мог утверждать: «Когда вы измеряете производительность хранилища во время настройки индексов и запросов, вы всегда должны использовать логические чтения, а не физические, потому что логические чтения повторяемы, а физические — нет. Физические чтения могут меняться в зависимости от того, что находится в кэше, какие другие запросы выполняются в данный момент, от редакции вашего SQL Server и от того, используются ли упреждающие чтения. Логические чтения просто отражают точное количество прочитанных страниц, независимо от того, откуда пришли данные (с диска или из кэша), так что пока это число уменьшается, вы делаете свою работу хорошо».

Исправление безопасности для SQL Server 2025 CU2 - KB5077466

Описание: KB5077466

Скачать: SQLServer2025-KB5077466-x64.exe

Дата выпуска: 10.03.2026

SQL Server 2022 — Версия: 17.0.4020.2

Исправление безопасности для SQL Server 2025 GDR - KB5077468

Описание: KB5077468

Скачать: SQLServer2025-KB5077468-x64.exe

Дата выпуска: 10.03.2026

SQL Server 2022 — Версия: 17.0.1105.2

Исправление безопасности для SQL Server 2022 CU23 - KB5077464

Описание: KB5077464

Скачать: SQLServer2022-KB5077464-x64.exe

Дата выпуска: 10.03.2026

SQL Server 2022 — Версия: 16.0.4240.4

Исправление безопасности для SQL Server 2022 GDR - KB5077465

Описание: KB5077465

Скачать: SQLServer2022-KB5077465-x64.exe

Дата выпуска: 10.03.2026.

SQL Server 2022 — Версия: 16.0.1170.5

Исправление безопасности для SQL Server 2019 CU32 - KB5077469

Описание: KB5077469

Скачать: SQLServer2019-KB5077469-x64.exe

Дата выпуска: 10.03.2026

SQL Server 2019 — версия: 15.0.4460.4

Исправление безопасности для SQL Server 2019 GDR - KB5077470

Описание: KB5077470

Скачать: SQLServer2019-KB5077470-x64.exe

SQL Server 2019 — версия: 15.0.2160.4

Дата выпуска: 10.03.2026

Исправление безопасности для SQL Server 2017 CU31 - KB5077471

Описание: KB5077471

Скачать: SQLServer2017-KB5077471-x64.exe

SQL Server 2017 — версия: 14.0.3520.4

Дата выпуска: 10.03.2026

Исправление безопасности для SQL Server 2017 GDR - KB5077472

Описание: KB5077472

Скачать: SQLServer2017-KB5077472-x64.exe

SQL Server 2017 — версия: 14.0.2100.4

Дата выпуска: 10.03.2026

Исправление безопасности для SQL Server 2016 SP3 - KB5077474

SQL Server 2016 — версия: 13.0.6480.4

Описание: KB5077474

Скачать: SQLServer2016-KB5077474-x64.exe

Дата выпуска: 10.03.2026

10.3.26

Фильтрованный индекс против индексированного представления и индекса с хранением в колонках (Часть 3)

Автор: Luca Biondi, SQL Server, Filtered Index vs Indexed View vs Columnstore Index! Part 3

В предыдущих статьях мы сравнили фильтрованные индексы и индексированные представления, поняв, в каких случаях каждый из них проявляет себя наилучшим образом.

Если вы пропустили Часть 2, вы можете прочитать её здесь:

👉 Фильтрованные индексы: сравнение производительности с примерами (Часть 2)

Сегодня мы добавляем в игру нового игрока.

Потому что, когда объём данных начинает расти… когда миллионы строк превращаются в десятки или сотни миллионов… мы получаем мощного нового союзника:

Колоночные индексы (Columnstore Indexes).

И это меняет всё.