Показаны сообщения с ярлыком Engine. Показать все сообщения
Показаны сообщения с ярлыком Engine. Показать все сообщения

27.10.26

Некролог на ночное задание по перестроению индексов, 1998–2026

Автор: Pinal Dave, The Nightly Index Rebuild Job, 1998 to 2026: An Obituary

Ночное задание по перестроению индексов скончалось после долгой болезни. Оно родилось в 1998 году для жёсткого диска, который не умел эффективно перемещать головки для поиска. Оно так и не поверило, что диск заменили. Его пережила плотность страниц, которая, как выяснилось, всё это время выполняла основную часть его работы. Это было задание по привычке. Каждую ночь в два часа, независимо от того, изменилось ли что-нибудь, оно перестраивало каждый индекс в базе данных. Каждое утро база данных была ровно такой же быстрой, как и прошлой ночью. Никто не помнит, кто его запланировал. Все помнят, что им говорили его не убирать.

26.10.26

Накопительный пакет обновления SQL Server 2025 CU10 - KB5125471

Описание: KB5125471

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

Дата выпуска: 22 октября 2026 г.

SQL Server 2025 — Версия: 17.0.5035.5

Analysis Services — Версия: 17.0.25.223

~40 фиксов в одном обновлении, главное:

🔒 Безопасность (критично)

  • Уязвимости в VDI (Backup/Restore) — выход за границы памяти
  • RCE и утечки в PolyBase и ML Services (SQLSatellite)
  • Повышение привилегий через метаданные бэкапа
  • Множество дыр в Replication (включая Log Reader Agent и sp_replcounters)

⚙️ Движок

  • Порча XML при сжатии (off-row)
  • Падение при JSON-индексах с Unicode >8000 байт
  • OOB-чтение в SQL Trace (LoginSid)
  • Утечки памяти в AI_GENERATE_EMBEDDINGS и SqlDataRecord.SetBytes

🐧 Linux

  • Ошибка 1803 при создании contained AG после смены collation

🔄 Репликация и CES

  • Buffer overflow в merge replication (>250 XML-ников)
  • Падения при сериализации в Change Event Streaming

🔗 Прочее

  • Сбой linked server (MSDASQL) без UID
  • Валидация Delta Lake и FILESTREAM на вторичных репликах

Окончание поддержки SQL Server 2016: как выбрать путь обновления

Автор: Greg Low, SQL Server 2016 end of support: how to choose your upgrade path

SQL Server 2016 достиг окончания расширенной поддержки в июле 2026 года, что означает, что он больше не получает регулярных обновлений безопасности, если вы не платите за расширенные обновления безопасности (ESU). Ваши реалистичные варианты — обновиться до SQL Server 2025, обновиться до SQL Server 2022 или купить ESU на срок до трёх дополнительных лет (до июля 2029 года), независимо от того, запускаете ли вы SQL Server локально или в Microsoft Azure. Для большинства производственных систем я рекомендую параллельную миграцию на SQL Server 2025, если только поставщик приложения или удалённый из последней версии функционал не исключают это. Правильный подход в конечном счёте зависит от совместимости приложений, ограничений инфраструктуры, допустимого простоя, затрат на лицензирование и того, как долго новая среда должна оставаться поддерживаемой.

В этой статье я рассмотрю ключевые решения (обновление на месте vs параллельная миграция, SQL Server 2022 vs SQL Server 2025, локально vs Microsoft Azure и ESU), а также контрольный список перед обновлением и советы по откату, чтобы снизить риск.

23.10.26

Поиск первопричины медленных запросов

Автор: Pinal Dave, Finding the Root Cause of Slow Queries

Поиск первопричины медленных запросов начинается с разделения работы и ожиданий, а затем проверки теорий на планах и истории. Вот вам пример показательного вторника. В 10:12 поиск заказа, который обычно возвращался за 180 миллисекунд, занял 14,8 секунды. Сорок три сеанса накопились за пять минут, и команда приложения захотела новый индекс ещё до обеда. CPU оставался скромным, логические чтения оставались привычными, а кэшированный план совпадал со вчерашним быстрым планом. Запрос провёл почти всю свою жизнь в ожидании LCK_M_S. Ночной процесс инвентаризации оставил открытой транзакцию обновления. Видимый запрос был жертвой, а не виновником. Команда проследовала по blocking_session_id, пока цепочка не закончилась на спящем сеансе. Его последний пакет показывал обновление инвентаризации, и данные транзакции подтвердили незафиксированную работу. Как только этот владелец безопасно зафиксировал транзакцию, задержка упала ниже 200 миллисекунд. Никто не редактировал код жертвы, индексы или статистику.

21.10.26

Как зашифровать бэкапы и не поседеть при восстановлении

Тема внезапно стала мейнстримом: в датацентры иногда прилетает, и тогда очень хочется иметь копию не «где-то там», а на альтернативной площадке. И чтобы её никто не прочитал. Погнали.

20.10.26

Взаимоблокировка SQL Server: создайте её сами

Автор: Pinal Dave, SQL Server Deadlock: Build One With Your Own Hands

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

Transaction (Process ID 57) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

SQL Server разрешает цикл, выбирая одну транзакцию в качестве жертвы, откатывая её и возвращая ошибку 1205. Выжившая транзакция затем может продолжить.

19.10.26

Очистка установки SQL Server с помощью UninstallString, когда запись в «Программах и компонентах» отсутствует

Автор: Vivek Janakiraman, SQL Server Cleanup Using UninstallString When Programs and Features Entry is Missing

Иногда случается, что службы SQL Server могут по-прежнему существовать на сервере, но связанные записи SQL Server отсутствуют в «Программах и компонентах». Это может происходить из-за отсутствующих или повреждённых записей реестра, неполного удаления или неудачных действий по установке исправлений.

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

Описание: KB5126967

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

Дата выпуска: 13 октября 2026 г.

SQL Server 2025 — Версия: 17.0.5015.4

Краткий перечень исправлений:

  • PolyBase: усилена проверка данных, устранены падения при работе с внешними источниками, добавлена валидация схемы delta-таблиц, исправлена небезопасная десериализация очереди отката, обновлена обработка разделяемой памяти. 
  • Backup Restore (VDI): устранены переполнения буфера и выходы за границы памяти при открытии виртуальных устройств и обработке данных; ужесточена проверка размеров и границ. 
  • Extended Events: устранены уязвимости раскрытия информации и отказа в обслуживании при чтении специально сформированных файлов .xel. 
  • Extensibility: обновлён сторонний компонент распаковки архивов; исправлено небезопасное чтение памяти в параметрах AI_GENERATE_EMBEDDINGS; устранены повреждения и раскрытие памяти в парсинге протокола SQL Satellite. 
  • Replication: повышена безопасность и надёжность очередей обновляемых подписок, метаданных безопасности, Log Reader Agent, change feed и потоковой передачи событий; исправлено переполнение буфера при >250 записей 
  • WebSync; усилены проверки авторизации; исправлены проблемы валидации данных. 
  • High Availability: добавлена проверка размера фрагментов FILESTREAM на вторичных репликах. 
  • Query Store: улучшена обработка входных данных Showplan. 
  • Distributed Query: исправлен сбой подключений через MSDASQL при отсутствии UID в строке провайдера. 
  • SQL Trace: ограничена обработка LoginSid размером внутреннего буфера для предотвращения выхода за границы.

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

Описание: KB5128492

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

Дата выпуска: 13 октября 2026 г.

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

Краткий перечень исправлений:

  • PolyBase: усилена проверка данных, устранены падения при работе с внешними источниками, добавлена валидация схемы delta-таблиц, исправлена небезопасная десериализация очереди отката, обновлена обработка разделяемой памяти. 
  • Backup Restore (VDI): устранены переполнения буфера и выходы за границы памяти при открытии виртуальных устройств и обработке данных; ужесточена проверка размеров и границ. 
  • Extended Events: устранены уязвимости раскрытия информации и отказа в обслуживании при чтении специально сформированных файлов .xel. 
  • Extensibility: обновлён сторонний компонент распаковки архивов; исправлено небезопасное чтение памяти в параметрах AI_GENERATE_EMBEDDINGS; устранены повреждения и раскрытие памяти в парсинге протокола SQL Satellite. 
  • Replication: повышена безопасность и надёжность очередей обновляемых подписок, метаданных безопасности, Log Reader Agent, change feed и потоковой передачи событий; исправлено переполнение буфера при >250 записей 
  • WebSync; усилены проверки авторизации; исправлены проблемы валидации данных. 
  • High Availability: добавлена проверка размера фрагментов FILESTREAM на вторичных репликах. 
  • Query Store: улучшена обработка входных данных Showplan. 
  • Distributed Query: исправлен сбой подключений через MSDASQL при отсутствии UID в строке провайдера. 
  • SQL Trace: ограничена обработка LoginSid размером внутреннего буфера для предотвращения выхода за границы.

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

Описание: KB5126934

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

Дата выпуска: 13 октября 2026 г.

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

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

Описание: KB5128493

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

Дата выпуска: 13 октября 2026 г.

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

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

Описание: KB5128494

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

Дата выпуска: 13 октября 2026 г.

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

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

Описание: KB5128495

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

Дата выпуска: 13 октября 2026 г.

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

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

Описание: KB51284964

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

Дата выпуска: 13 октября 2026 г.

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

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

Описание: KB5128497

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

Дата выпуска: 13 октября 2026 г.

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

16.10.26

Новое в SQL Server 2025: оптимизация плана с опциональными параметрами (OPPO)

Автор: Luca Biondi, SQL SERVER 2025 Optional Parameter Plan Optimization (OPPO). What It Is and Benchmarks — Internal Part 1 Series

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

12.10.26

Структуры хранения #7 – Пространственные индексы

Автор: Hugo Kornelis, Storage structures 7 – Spatial indexes

С возвращением в серию о внутреннем устройстве структур хранения. Я начал с обзора стандартных типов хранения в выпусках о дисковом rowstore, колоночных индексах, оптимизированном для памяти хранилище и оптимизированных для памяти колоночных хранилищах, а затем перешёл к специализированным структурам хранения в частях об XML-индексах и JSON-индексах. Теперь пришло время рассмотреть пространственные индексы.

3.10.26

Первые 60 секунд инцидента на проде: остановись, определи масштаб, сопоставь

Автор: Jose Manuel Jurado (MICROSOFT), Lessons Learned #555: The First 60 Seconds of a Production Incident: Stop, Scope, Correlate;

Когда кто-то говорит: «База данных упала», начните с четырёх вопросов: что именно отказывает? кто или что затронуто? когда это началось? что изменилось или коррелируется с этим моментом? Затем позвольте доказательствам определить следующий шаг. Остановись. Определи масштаб. Сопоставь. Устраняй с доказательствами.

Когда начинается критический производственный инцидент, первое сообщение, которое мы часто получаем, звучит примерно так: «База данных упала».

В этот момент всё внезапно становится срочным.

  • Инженеры открывают панели мониторинга.
  • Кто-то начинает проверять журналы.
  • Другой просматривает CPU и память.
  • Кто-то ещё спрашивает, было ли развёртывание.
  • Тестируются соединения.
  • Запрашиваются метрики.
  • Связываются с командами.

Все эти действия в конечном итоге могут быть необходимы. Но есть более важный вопрос, на который нужно ответить сначала: что именно означает «упала»?

Поработав над множеством производственных инцидентов, один урок становится всё более очевидным: первые 60 секунд — это не про решение инцидента. Это про определение инцидента.

Расплывчатое описание проблемы может направить диагностику во множество разных сторон. Точная формулировка проблемы резко сокращает пространство расследования.

В этой статье описывается простой подход, который можно применить в первые моменты инцидента: Остановись. Определи масштаб. Сопоставь.

2.10.26

Динамическое маскирование данных — что это, чем оно не является и как использовать его эффективно

Автор: Madhumita Tripathy MSFT, Dynamic Data Masking – What it is, What it isn’t, and How to use it effectively

В этой статье мы объясним основное назначение функции динамического маскирования данных: Dynamic Data Masking (для упрощения разработки приложений), разберём как она работает и её надлежащие сценарии использования, а также её ограничения. Если вы рассматриваете возможность использования динамического маскирования данных (DDM) или пересматриваете свою стратегию защиты данных, эта информация поможет вам принять обоснованные решения.

1.10.26

Перестаньте оправдывать снижение коэффициента заполнения расщеплением страниц (ИИ врёт)

Автор: Brent Ozar, Database Animations: Stop Using Page Splits to Justify Lowering Fill Factor

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

Вы отслеживаете не тот показатель.