Несколько недель назад я опубликовала свой первый «Пятничный отзыв» о Хранилище запросов (Query Store), и один из ответов ссылался на хранимую процедуру, которую я раньше не использовала: sp_configure_automatic_tuning. Было высказано предположение, что эта хранимая процедура не документирована и работает не так, как ожидалось. Зная, как сильно я люблю Хранилище запросов, автоматическую коррекцию планов и документацию, я отправилась на поиски. Если вы не знакомы с этой хранимой процедурой, читайте дальше.
MS SQL Server дело тонкое...
5.8.26
Два дополнительных элемента управления при включённой автоматической коррекции планов
4.8.26
Структуры хранения #6 – JSON-индексы
Пришло время продолжить серию статей о внутреннем устройстве структур хранения. Я уже рассмотрел более стандартные типы хранения в частях, посвящённых дисковому строчному хранению, columnstore индексам, оптимизированным для памяти структурам и оптимизированным для памяти columnstore, а в прошлом выпуске этой серии я начал рассматривать специализированные структуры хранения, изучив XML-индексы.
Microsoft представила ограниченную поддержку JSON в SQL Server 2016. Однако только в SQL Server 2025 появились собственный тип данных json и JSON-индексы. Итак, давайте посмотрим, как они работают «под капотом».
3.8.26
Как и когда сжимать файлы журналов SQL Server: рекомендации
Автор: Steve Stedman, How and When to Shrink SQL Server Log Files: Best Practices
Управление файлами журналов транзакций SQL Server часто ставит перед командами администраторов баз данных неожиданные проблемы при принятии решения о том, как и когда сжимать файлы журналов SQL Server, особенно когда быстрый рост угрожает доступному дисковому пространству. Эти файлы играют жизненно важную роль в записи каждого изменения в базе данных, однако их расширение может быстро обогнать первоначальные ожидания, если не решены основные проблемы активности или конфигурации.
Многие администраторы прибегают к команде сжатия как к немедленному решению, но выполнение этого действия без полного понимания контекста может привести к повторяющимся циклам роста и снижению производительности. Знание правильных условий, при которых сжатие становится уместным, помогает избежать ненужных рисков, одновременно решая насущные проблемы с хранилищем.
В этой статье описаны обстоятельства, оправдывающие сжатие файлов журналов SQL Server, а также проверенные методы безопасного выполнения этого процесса и снижения вероятности будущих проблем.
19.7.26
Диагностика конкуренции за tempdb
Автор: Paul Randal, The Accidental DBA (Day 27 of 30): Troubleshooting: Tempdb Contention
Одна из самых распространённых проблем производительности, существующих в экземплярах SQL Server по всему миру, известна как конкуренция за tempdb. Что это означает? Конкуренция за tempdb относится к узкому месту для потоков, пытающихся получить доступ к страницам распределения, находящимся в памяти; это не связано с вводом-выводом.
18.7.26
Производительность DBCC CHECKDB и индексы на вычисляемых столбцах
Автор: Paul Randal, DBCC CHECKDB performance and computed-column indexes
[Примечание 2016 г.: Команда разработчиков «исправила» проблему в SQL Server 2016, отключив проверку согласованности этих индексов, если не используется параметр WITH EXTENDED_LOGICAL_CHECKS.]
Ни для кого не секрет, что производительность DBCC CHECKDB имеет некоторые особенности, зависящие от схемы проверяемой базы данных и различных видов повреждений. Недавно я проводил тестирование масштабируемости DBCC CHECKDB для статьи в блоге и обнаружил довольно неприятную проблему производительности, существующую во всех версиях SQL Server, начиная с SQL Server 2005. Это не ошибка, это просто особенность работы.
Проблема возникает, когда существует некластерный индекс, в котором вычисляемый столбец является частью ключа индекса или одним из включённых столбцов (INCLUDE), и влияет на DBCC CHECKDB, DBCC CHECKFILEGROUP и DBCC CHECKTABLE.
17.7.26
Наиболее распространённые классы кратких блокировок и их значение
Автор: Paul Randal, Most common latch classes and what they mean
Я проводил опрос о распространённых кратких блокировках (их ещё называют защёлками - latch) на экземплярах SQL Server по всему миру. Я получил информацию почти с 600 серверов, и если вы помните, я дал вам код для вывода основных нестраничных защёлок, ожидаемых во время ожиданий LATCH_XX. Нестраничные защёлки — это те, которые не являются ни PAGELATCH_XX (ожидание доступа к копии страницы файла данных в памяти), ни PAGEIOLATCH_XX (ожидание чтения страницы файла данных с диска в память).
Накопительный пакет обновления SQL Server 2022 CU26 - KB5093420
Описание: KB5093420
Скачать: SQLServer2022-KB5093420-x64.exe
Дата выпуска: 16.07.2026
SQL Server 2022 — Версия: 16.0.4265.3
Analysis Services — Версия: 16.0.43.252
Краткое описание изменений- Добавлена более подробная информация об ошибках в журнал кластера Windows Server Failover Cluster, если ресурс группы доступности не может получить диагностические сведения о колонках.
- Добавлена поддержка удаления IP-адреса из прослушивателя группы доступности с помощью команды ALTER AVAILABILITY GROUP ... MODIFY LISTENER ... REMOVE IP.
- Исправлена уязвимость SQL-инъекции в хранимой процедуре sys.sp_MSforeachdb, позволяющая авторизованному злоумышленнику повысить привилегии через сеть.
- Исправлена проблема, из-за которой план обслуживания перестройки индекса переставал отвечать из-за длительного запроса.
- Исправлен сбой мониторинговых запросов с использованием sys.dm_exec_requests или sys.sysprocesses на вторичной реплике группы доступности (ошибки 976 или 978).
- Исправлена ошибка интерполяции в новом оценщике кардинальности для очень больших значений, из-за которой операция ALTER INDEX выбирала последовательный план.
- Удалена устаревшая криптографическая библиотека RSA32Lib в рамках модернизации шифрования.
- Исправлено нарушение доступа при выполнении ALTER PARTITION FUNCTION ... SPLIT RANGE для функции секционирования, используемой таблицей с identity-столбцом, на который ссылается кластеризованный индекс в схемно-привязанном представлении.
- Исправлено состояние «nonyielding scheduler», возникающее при записи некоторых ошибок в журнал ошибок SQL Server.
- Скорректирован коэффициент выборки для инкрементальной статистики, если последний коэффициент выборки был 100 % и в таблицу добавлено много новых строк.
- Улучшено управление памятью при компиляции запросов для индексов columnstore, что сокращает время компиляции.
- Исправлено состояние «nonyielding scheduler», возникающее при итерации sys.dm_db_index_operational_stats по большому количеству кэшированных куч или B-деревьев.
Накопительный пакет обновления SQL Server 2025 CU7 - KB5096981
Описание: KB5096981
Скачать: SQLServer2025-KB5096981-x64.exe
Дата выпуска: 16.07.2026
SQL Server 2025 — Версия: 17.0.4065.4
Analysis Services — Версия: 17.0.25.223
- Исправлен сбой мониторинговых запросов к вторичной реплике (ошибки 976/978) в группе доступности.
- Шифрование UCS переключено на AES-256 (вместо AES-128), если TLS не включён явно.
- Устранено состояние «non-yielding scheduler» при записи ошибки часового пояса в журнал ошибок.
- Добавлен флаг трассировки для включения TLS 1.3 (без правки реестра).
- Усилено шифрование диалогов Service Broker — теперь AES-256.
- Введено логическое ограничение для функции EDIT_DISTANCE, предотвращающее переполнение и DoS-атаки.
- Удалена поддержка устаревшего BinaryMessageFormatter (2000) в задаче Message Queue — устранена уязвимость десериализации.
- Исправлен вызов дампа при ALTER JSON INDEX REORGANIZE, если статистика существует во внутренней таблице JSON-индекса.
- Исправлен неверный расчёт смещения родительского узла, вызывавший повреждение JSON при JSON_MODIFY.
- Устранено повреждение данных и дамп-файл при операции слияния JSON_MODIFY.
16.7.26
Как происходят сбросы (spills) данных и журнала в tempdb
Автор: Paul Randal, Understanding data vs log usage for spills in tempdb
Сегодня утром я заметил обсуждение в списке рассылки SQL MCM (в котором участвуют все оригинальные инструкторы MCM), где пытались понять причину огромного расхождения между использованием файлов данных и файлов журнала tempdb. Я объяснил ответ и подумал, что поделюсь им и с вами.
15.7.26
Исправление безопасности для SQL Server 2025 CU6 - KB5101346
Описание: KB5101346
Скачать: SQLServer2025-KB5101346-x64.exe
Дата выпуска: 14.07.2026
SQL Server 2025 — Версия: 17.0.4060.2
Исправление безопасности для SQL Server 2025 GDR - KB5102333
Описание: KB5102333
Скачать: SQLServer2025-KB5102333-x64.exe
Дата выпуска: 14.07.2026
SQL Server 2022 — Версия: 17.0.1125.2
Исправление безопасности для SQL Server 2022 CU25 - KB5101347
Описание: KB5101347
Скачать: SQLServer2022-KB5101347-x64.exe
Дата выпуска: 14.07.2026
SQL Server 2022 — Версия: 16.0.4262.2
