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

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

17.10.26

Знакомьтесь sqlsimtools - инструмент для проектирования рабочих нагрузок SQL

Автор: Bob Ward, Microsoft, Introducing sqlsimtools

Много лет назад в далёкой-далёкой галактике мои коллеги из службы поддержки Кит Элмор и Роберт Дорр создали инструмент под названием ostress.exe. На протяжении десятилетий он менял то, как мы воспроизводили проблемы клиентов для SQL Server. Команда разработчиков использовала его, и до недавнего времени я использовал его для демонстраций, книг и примеров. Его магия была простой: ostress мог имитировать множество одновременных пользователей, выполняющих SQL-запросы или скрипты.

Я решил переосмыслить ostress для сегодняшнего мира SQL, и результатом стал sqlsimtools, теперь в публичной предварительной версии по адресу microsoft.github.io/sqlsimtools/. Это бесплатный набор инструментов моделирования рабочих нагрузок с открытым исходным кодом для SQL Server 2019, 2022 и 2025, Azure SQL Database, Azure SQL Managed Instance и SQL database в Microsoft Fabric. Я создавал его некоторое время и использовал на мероприятиях и в демонстрациях. Теперь я хочу, чтобы он был у всех.

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, и вы слышали, что разделения страниц — это плохо, поэтому вы снижаете коэффициент заполнения, ожидая, что количество разделений страниц уменьшится.

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

30.9.26

Одни и те же ключевые слова строки подключения теперь работают во всех наших драйверах SQL Server

Автор: DavidLevy, Microsoft, The same connection string keywords now work across our SQL drivers

Годами мы рассматривали каждый из наших драйверов Microsoft SQL Server как отдельную сущность. Мы услышали ваши отзывы о том, что этот подход нужно пересмотреть. Команда, запускающая приложения, написанные на нескольких языках, обращавшихся к одной базе данных, не должна жонглировать несколькими строками подключения.

Мы это исправляем.

29.9.26

Исследование алгоритма пропорционального заполнения

Автор: Paul Randal, Investigating the proportional fill algorithm

Это тема, которая недавно всплыла в списке рассылки Microsoft Certified Master, и которую я продвигаю из-за её последствий для производительности, так что я подумал, что из неё получится интересная статья.