13.5.26

Бывают дни, когда я хочу бросить всё это с кэшем планов и Хранилищем запросов!

Автор: Brent Ozar, There Are Days When I Feel Like Giving Up on the Plan Cache and Query Store

В теории мониторинг производительности SQL Server довольно прост:

  1. Изучите главные типы ожиданий (wait types) на сервере.
  2. Найдите запросы, вызывающие эти типы ожиданий.
  3. Исправьте эти запросы или улучшите реакцию сервера на них (индексы, настройки и т.д.).

Но на практике шаг 2 ужасен, потому что:

  • Приложения отправляют на сервер баз данных непараметризованные строки.
  • Пользователи Entity Framework строят запросы с FromSqlRaw или string.Format().
  • Пользователи Entity Framework пишут запросы с .Contains, который создаёт непараметризованный список IN, даже когда ищут всего одно значение (в EF9 стало лучше).
  • Люди пишут неаккуратный динамический SQL, который просто вставляет значения прямо в строку запроса.
  • Разработчики SaaS-решений помещают каждого клиента в собственную базу данных, и планы не переиспользуются между базами данных.

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

Описание: KB5089899

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

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

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

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

Описание: KB5091223

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

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

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

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

Описание: KB5089900

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

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

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

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

Описание: KB5091158

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

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

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

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

Описание: KB5090407

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

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

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

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

Описание: KB5090408

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

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

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

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

Описание: KB5090354

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

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

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

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


Описание: KB5089271

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

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

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

12.5.26

Устранение проблем соединений с TVP

Автор: Luca Biondi, Check SQL Server TVP Join Problems in 45 Seconds ...Bad Estimates, TempDB Spills, and Parameter Sniffing | Part 17

В этой статье вы узнаете, почему соединение с Table-Valued Parameters (TVP) может разрушить вашу производительность из-за скрытых сбросов в TempDB и как это исправить с помощью надёжного, готового к проду шаблона.

🧠 В двух словах

  • ✔️ Статистическая слепота: TVP не хватает статистики распределения, что заставляет оптимизатор делать зафиксированные предположения о кардинальности. 💣
  • ✔️ Памятная катастрофа: Заниженные оценки количества строк приводят к недостаточному распределению памяти и массовым сбросам сортировок и хэш-операций на диск (в TempDB). 🚀
  • ✔️ Ловушки sniffing'а: Кэширование планов для маленьких наборов данных в TVP приводит к полному отказу, когда позже передаются большие объёмы данных. ✔️

В высокопроизводительных SQL-средах мы полагаемся на TVP для эффективной передачи наборов данных. Но есть и тёмная сторона. Когда вы выполняете соединение (JOIN) с TVP непосредственно внутри хранимой процедуры, вы часто играете в азартную игру с исполнительным движком. Давайте разберём, почему это происходит и как сохранить контроль.

11.5.26

Создание баз данных через прослушивателя контейнерной группы доступности

Автор: Attinder_Pal_Singh. Creating a Contained Availability Group and Enabling Database Creation via CAG Listener

Контейнерная группа доступности (Contained Availability Group, CAG) предназначена для упрощения высокодоступности и аварийного восстановления путём инкапсуляции системных баз данных (master, msdb) непосредственно внутри самой группы доступности. Это означает, что учётные записи (логины), задания агента SQL Server, учётные данные и прочие метаданные автоматически реплицируются между репликами, устраняя необходимость ручной синхронизации и снижая эксплуатационную сложность.

Начиная с SQL Server 2025 CU1, вы можете создавать или восстанавливать базы данных напрямую через прослушиватель CAG — без подключения к физическому экземпляру — включая специальный ключ контекста сеанса.

10.5.26

Как выбор типа данных влияет на производительность

Автор: Paul Randal, How can data-type choice affect performance?

На одном из занятий, которые мы с Кимберли вели на этой неделе на конференции SQL Connections, мы обсуждали, как выбирать эффективные типы данных. Я хотел бы поделиться этим обсуждением здесь на примере.