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

11.11.25

Потребление памяти запросами в SQL Server 2025

Автор: SQLYARD, SQL Query Memory Consumption in SQL Server 2025

Распределение памяти (memory grants) под запросы — один из ключевых и при этом часто недооцениваемых аспектов настройки производительности SQL Server. Если запрос просит больше памяти, чем ему нужно, падает параллелизм. Если слишком мало — происходят проливы в tempdb.

В SQL Server 2025 Microsoft улучшила обратную связь по распределению памяти запроса (query memory grant feedback) и оптимизацию планов выполнения, благодаря чему движок управляет памятью заметно эффективнее, чем в SQL Server 2022. В этой статье мы рассмотрим, как эти изменения влияют на производительность запросов, сравним уровни совместимости 160 и 170.

Новое а SQL Server 2025: предвкушение - нечёткое сопоставление уже на подходе!

Автор: Rob Farley, SQL Server 2025 excitement – fuzzy is coming!

Разумнее всего ожидать, что общедоступный релиз SQL Server 2025 состоится в этом месяце. На следующей неделе пройдут две крупные конференции в экосистеме данных Microsoft — Microsoft Ignite и PASS Summit. Почти все последние версии выходили как раз под такие мероприятия, а раз они проходят в одну неделю, то очень вероятно, что именно тогда и прозвучат анонсы.

Поэтому Стив Джонс предложил нам написать, что именно в новой версии нас радует. Возможно, слово «восторг» здесь не совсем уместно, но Стив явно хочет понять, какие функции облегчат нам жизнь. Он перечисляет несколько вариантов, а для меня главным событием становится, пожалуй, новый набор функций для нечёткого сравнения строк.

10.11.25

Новое в SQL Server 2025: JSON‑индексы

Автор: Koen Verbeeck, The New JSON Index in SQL Server 2025

Мы начали использовать новый тип данных JSON в SQL Server для хранения JSON в таблице. При выполнении запросов с функциями вроде JSON_VALUE видим, что каждый раз выполняется полный просмотр таблицы. Хорошо бы индексировать JSON, чтобы повысить производительность. Поскольку JSON всё шире применяется в мире данных (например, REST‑API обычно возвращают наборы данных в формате JSON), SQL Server расширяет поддержку JSON прямо в ядре СУБД. В начале 2025 года в предварительной версии SQL Server 2025 появилось несколько новых функций для работы с JSON. Ещё одно дополнение — новый тип индекса: JSON‑индекс.

7.11.25

Новое в SQL Server 2025: изменения в SUBSTRING

Автор: Steve Jones, T-SQL in SQL Server 2025: Substring Changes

Функция SUBSTRING() долгие годы была одним из моих самых употребимых инструментов — то подправить данные, то для вывода части строки. Хотя это очень полезная функция, у неё было одно досадное ограничение, которое в SQL Server 2025 устранено. В этой короткой статье я рассмотрю это изменение.

С выходом новой версии SQL Server мне хотелось осветить некоторые изменения в коде T‑SQL. Это часть серии о том, как язык T‑SQL развивается в этой версии.

31.10.25

Accelerated Database Recovery для tempdb в SQL Server 2025

Автор: Andrew Pruski, Accelerated Database Recovery for tempdb in SQL Server 2025

Ускоренное восстановление базы данных (Accelerated Database Recovery, ADR) появилось в SQL Server 2019 и обеспечивает быстрое восстановление, мгновенный откат транзакций и агрессивное усечение журнала. Полный обзор того, как ADR этого добивается, приведён в документации.

Теперь в SQL Server 2025 можно включить ADR для tempdb! Быстрое восстановление к tempdb не применимо, но вот мгновенный откат транзакций и агрессивное усечение журнала — на все 100%. Посмотрим, что происходит после включения ADR для tempdb в SQL Server 2025.

22.10.25

TempDB переполняется? Попробуйте Resource Governor и SQL Server 2025

Автор: Brent Ozar, TempDB Filling Up? Try Resource Governor

TempDB — одна из моих неизменных головных болей.

Любой, любой, кто может выполнять запросы на вашем сервере, способен за считанные секунды устроить отказ в обслуживании, просто заполнив TempDB простейшим запросом:

DROP TABLE IF EXISTS #big_problem;
CREATE TABLE #big_problem
    (filler VARCHAR(8000));
WHILE 1 = 1
    INSERT INTO #big_problem
    SELECT REPLICATE('X', 8000)
    FROM GENERATE_SERIES(1, 100000);

Этот цикл постепенно заполнит TempDB, и когда одна из попыток в итоге завершится ошибкой, это не беда: сессия останется открытой. Она продолжит занимать всё остальное пространство, мешая другим пользователям (и системным задачам) пользоваться используемыми ресурсами.

Вам уж точно не стоит запускать такое в свой последний рабочий день, выходя за дверь: даже если ваш логин отключат, уже запущенные запросы продолжат выполняться, пока не завершатся, или, как в этом случае, пока не нанесут «добивающий удар» по вашему хранилищу, и файлы TempDB не начнут раздуваться, как брюки Sansabelt, пытающиеся справиться с шведским столом «ешь сколько сможешь». И уж точно не стоит гонять это в цикле. (Если всё же решитесь, убедитесь, что в начале скрипта удаляете таблицу, если она существует).

Если вы ещё не на SQL Server 2025, ваша основная линия обороны — заранее задать файлам данных TempDB нужный максимальный размер и отключить авторасширение. Это... слабая защита. Плохо ведущие себя запросы всё равно могут выгрызть TempDB до нуля, создавая проблемы для остальных.

16.10.25

Способы объединения значений в символьные строки + что привнёс SQL Server 2025

Автор: Louis Davidson, Concatenating values as character data including in SQL Server 2025

Недавно я искал тему для новой заметки и перечитал «Новые возможности SQL Server 2025 (предварительная версия)». Нашёл вот это:

|| (String concatenation) Concatenate expressions with expression || expression.

Мой интерес, мягко говоря, проснулся. Использование + для сцепления строк всегда имело свои проблемы, и, как бы мне ни нравилась функция CONCAT, она немного тяжеловесна по сравнению с полноценным оператором.

Существует также функция CONCAT_WS, которая добавляет разделитель в результат, но я не буду о ней говорить в этой статье.

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

6.10.25

От тушения пожаров к созиданию будущего: SQL Server 2025 и новое мышление DataOps

Автор: Chris, From Firefighting to Future‑Building: SQL Server 2025 and the New DataOps Mindset

В технологии бывают моменты, когда почва словно уходит из‑под ног. Когда инструменты, которые мы считали надёжными утилитами, внезапно становятся двигателями преобразований. SQL Server 2025 — один из таких.

Годами специалисты по данным жили в режиме постоянного тушения пожаров. Мы ставили заплаты по ночам. Мы настраивали запросы до ряби в глазах. Мы строили конвейеры, которые напоминали скорее хрупкие мостики, чем надёжные магистрали. Мы много работали, но слишком часто — «в тумане», в мелочах.

Теперь, с SQL Server 2025, этот «туман» рассеивается. Мы вступаем в новую эпоху, где внимание сосредоточено не на механике данных, а на их смысле. Это восхождение декларативного DataOps.

2.10.25

Новое в SQL Server 2025: Виртуализация данных с PolyBase

Автор: HugoQueiroz_MSFT, Data Virtualization with PolyBase for SQL Server 2025

Microsoft SQL Server 2025 представляет серьёзные улучшения в PolyBase, нацеленные на упрощение, повышение безопасности и лучшую совместимость между платформами. Опираясь на новшества, представленные в SQL Server 2022, SQL Server 2025 развивает виртуализацию данных, делая упор на удобство использования, укрепление безопасности за счёт расширенных вариантов аутентификации и улучшенную поддержку Linux.

30.9.25

Интеграция SQL Server 2025 с S3

Автор: Anthony Nocentino, Setting up SQL Server S3 Object Storage Integration using MinIO with Docker Compose (Updated for SQL Server 2025)
Эта статья и репозиторий GitHub были обновлены для SQL Server 2025 RC1 и Ubuntu 24.04.
Новое в SQL Server 2025: Вам больше не нужно устанавливать службу PolyBase для работы с файлами Parquet в S3. Ранее, с SQL Server 2022, приходилось создавать пользовательский контейнер или вручную устанавливать PolyBase. Теперь интеграция с объектами S3 и поддержка Parquet работают прямо из коробки!

21.9.25

Доступ к Kubernetes API из SQL Server 2025

Автор: dbafromthecold.com, Accessing the Kubernetes API from SQL Server 2025

Хранимая процедура sp_invoke_external_rest_endpoint, появившаяся в версии SQL Server 2025, позволяет обращаться к внешним конечным точкам REST API прямо из SQL Server. Это открывает множество интересных возможностей. Недавно я задумался: ведь Kubernetes тоже предоставляет REST API. Можно ли обратиться к нему напрямую из SQL Server?

Давайте посмотрим, как это сделать. Пошагово план такой:

  1. Создать локальный центр сертификации (CA), приватный RSA-ключ и подписанный сертификат
  2. Развернуть обратный прокси в Kubernetes
  3. Настроить SQL Server для обращения к прокси
  4. Использовать хранимую процедуру для вызова Kubernetes API через прокси

19.9.25

Новое в SQL Server 2025: REGEXP_INSTR и REGEXP_COUNT

Автор: Louis Davidson, And the rest – REGEXP_INSTR, and REGEXP_COUNT

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

В этой статье мы рассмотрим:

  • REGEXP_INSTR — Возвращает начальную или конечную позицию соответствующей подстроки в зависимости от значения аргумента return_option.
  • REGEXP_COUNT — Подсчитывает количество совпадений шаблона регулярного выражения в строке.

18.9.25

Новое в SQL Server 2025: sys.dm_os_memory_health_history

Автор: SQLYARD, Meet sys.dm_os_memory_health_history in SQL Server 2025

В SQL Server 2025 компания Microsoft представила новое динамическое административное представление (DMV) sys.dm_os_memory_health_history. Ключевые моменты:

  • Оно фиксирует снимки состояния использования и «здоровья» памяти во времени.
  • Каждая строка — это один снимок.
  • Снимки содержат различные метрики: сколько памяти доступно для новых распределений, сколько используется освобождаемыми кешами, какие диспетчеры памяти потребляют больше всего, а также «уровень серьёзности», показывающий, насколько здоровым (или перегруженным) является состояние памяти.
  • Это функция в режиме предварительного просмотра — схема или поведение могут измениться в будущих обновлениях SQL Server 2025. 

16.9.25

Новое в SQL Server 2025: REST API и переосмысливание резервного копирования снимков

Автор: Anthony Nocentino, T-SQL REST API Integration in SQL Server 2025: Streamlining T-SQL Snapshot Backups

В этой статье я покажу, как с помощью T-SQL-скрипта создавать согласованные с приложениями моментальные снимки на Pure Storage FlashArray прямо из SQL Server, без использования внешних инструментов. В SQL Server 2025 появилась мощная новая возможность: хранимая процедура sp_invoke_external_rest_endpoint. Она значительно облегчает вызов REST API напрямую из T-SQL. В сочетании с API Pure Storage эта функция позволяет полностью автоматизировать процесс создания снимков без внешних скриптов и инструментов.

Если вы следили за моей серией публикаций Using T-SQL Snapshot Backup, вы знаете, что данная технология особенно полезна в крупных базах данных. Сегодня мы рассмотрим, как реализовать её непосредственно в T-SQL, используя возможность SQL Server обращаться к REST API. PowerShell не потребуется.

14.9.25

Новое в SQL Server 2025: Функция REGEXP_REPLACE

Автор: Louis Davidson, REGEXP_ Functions in SQL Server 2025 – REGEXP_REPLACE

Мы уже рассмотрели столько способов фильтрации с помощью регулярных выражений, сколько, на мой взгляд, реализовано в SQL Server 2025. Теперь пришло время сосредоточиться на функциях, которые не являются REGEXP_LIKE. Мы уже говорили о REGEXP_MATCHES, которая пригодится в дальнейшем.

Я начну с REGEXP_REPLACE, которая похожа на обычную функцию SQL REPLACE. Но вместо замены на основе статического разделителя, она может заменять несколько (или конкретное) значение, совпадающее с регулярным выражением. Все мои примеры в этой статье будут использовать просто переменную со значением, над которым мы работаем, так что создавать или загружать объекты не нужно.

13.9.25

Новое в SQL Server 2025: Функция REGEXP_SPLIT_TO_TABLE

Автор: Louis Davidson, REGEXP_ Functions in SQL Server 2025 – REGEXP_SPLIT_TO_TABLE

Продолжим рассмотрение функций семейства REGEXP_, следующая, на которой я хочу остановиться, — это табличная функция REGEXP_SPLIT_TO_TABLE. Это определённо одна из тех функций, которые стоит знать, особенно если когда-либо потребуется извлекать данные из сложной структуры.

Эта функция очень похожа на STRING_SPLIT. И, в отличие от таких функций, как REGEXP_LIKE, в простых случаях здесь можно использовать те же основные параметры, что и у STRING_SPLIT. Но далее возможности становятся практически безграничными, потому что можно определить почти любые разделители. Конечно, у функции есть и недостатки, но об этом поговорим позже.

12.9.25

Новое в SQL Server 2025: Поиск совпадений с помощью функций регулярных выражений

Автор: Louis Davidson, Viewing Multiple Matches in SQL Server Regular Expression Functions

Цель этой статьи — показать, как можно находить несколько совпадений с использованием регулярных выражений SQL Server, чтобы примеры были более наглядными (особенно в последующих частях).

Существует несколько функций, которые позволяют в выводе результата показать несколько совпадений фрагмента строки или шаблона:

  • REGEXP_REPLACE – возвращает измененную исходную строку, замененную строкой замены, в которой найдено вхождение шаблона регулярного выражения. Если совпадения не найдены, функция возвращает исходную строку.
  • REGEXP_SUBSTR – возвращает одно вхождение подстроки в анализируемой строке, которое соответствует шаблону регулярного выражения. Если совпадение не найдено, возвращается NULL.
  • REGEXP_INSTR – возвращает начальную или конечную позицию соответствующей подстроки в зависимости от значения аргумента return_option.
  • REGEXP_COUNT – подсчитывает количество совпадений шаблона регулярного выражения в строке.
  • REGEXP_SPLIT_TO_TABLE – используется аналогично функции SPLIT_TO_TABLE, но возвращает таблицу строк, разделенную шаблоном регулярных выражений. Если шаблон не соответствует, функция возвращает строку.
  • REGEXP_MATCHES – возвращает таблицу захваченных подстрок, которые соответствуют шаблону регулярного выражения строке. Если совпадение не найдено, функция не возвращает строку.

11.9.25

Новое в SQL Server 2025: Функция REGEXP_SUBSTR

Автор: Louis Davidson, REGEXP_ Functions in SQL Server 2025 – REGEXP_SUBSTR

Функция REGEXP_SUBSTR извлекает части строки на основе шаблона регулярного выражения. Она имеет сходство с функцией SUBSTRING, но есть и важные (и интересные) различия. Эта функция возвращает N-ое вхождение подстроки, которая соответствует регулярному выражению.

Когда я начал писать десятую статью в серии о регулярных выражениях в SQL Server, я должен признаться: я не знал заранее, что именно эта функция делает. Классическая функция SUBSTRING принимает строго позиционные параметры. Задана строка, указываешь начальную позицию и количество символов — и получаешь результат. Никакого сопоставления с шаблоном. К счастью для вас, изучение этого материала у меня заняло совсем немного времени.

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

Страсти по SQL Server 2025: ускоренное восстановление базы данных не исправляет проблему NOLOCK!!!

Автор: Brent Ozar, No, Accelerated Database Recovery Doesn’t Fix NOLOCK

Я никогда не видел в T-SQL такой фразы, которую так же любят использовать, как NOLOCK. Мне постоянно кажется, что я написал уже достаточно публикаций об этом, но вот недавно клиент высказал новую идею:

Мы используем Accelerated Database Recovery в SQL Server 2022, который хранит версии строк внутри таблицы. К тому же мы не используем транзакции — наши операции вставки, обновления и удаления выполняются над одной таблицей за раз, а ваши демонстрации всегда используют транзакции, поэтому нас это не затрагивает.

10.9.25

Новое в SQL Server 2025: Функция REGEXP_COUNT

Автор: Koen Verbeeck, SQL Server 2025 REGEXP_COUNT Function to Count Occurrences in Text

Бывает необходимо подсчитать, сколько раз определенная строка встречается в тексте. Однако формат этой строки может меняться. Например, существует несколько способов записи одного и того же номера телефона, и все они являются допустимыми форматами. Возможно ли это сделать в T-SQL? Давайте рассмотрим, как может помочь функция REGEXP_COUNT.