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

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 не потребуется.

Репликация между различными СУБД — что использовать, когда и как обходить ограничения

Автор: SQLYARD, Replication Across Engines — What to Use, When, and How to Mitigate Their Limitations

Репликация данных лежит в основе многих современных систем: обеспечение непрерывной работы (высокая доступность), катастрофоустойчивость (восстановление после сбоев), наполнение аналитических конвейеров или хранилищ, выполнение миграций или поддержка глобальных приложений и мульти-региональных требований к данным. Но не все инструменты и стратегии репликации одинаковы. Зачастую, вы сталкиваетесь с компромиссами, которые могут определять:

  • Как фиксируются изменения (на основе журнала/логов, триггеры, загрузки изменений, пакетные загрузки);
  • Насколько «в реальном времени» должна быть синхронизация (подойдут ли минуты, или нужен почти мгновенный обмен);
  • Используют ли источник и приёмник одну и ту же СУБД или разные («гомогенная» vs «гетерогенная» репликация);
  • Как вы справляетесь с различиями в схемах, эволюцией схем, идентификаторами/последовательностями, вычисляемыми полями и т. п.;
  • Какие конфликты могут возникнуть при наличии более чем одного пишущего узла и как их разрешать;
  • Операционная сложность, мониторинг, стоимость, лицензирование и т. д.

Каждая крупная реляционная СУБД (SQL Server, PostgreSQL, Oracle, MySQL…) использует свои внутренние механизмы (redo-журналы, журналы транзакций, binlog, WAL и т. п.), имеет нюансы типов данных и собственные ограничения. Репликация между разными СУБД часто усиливает эти несоответствия (например, SQL Server NVARCHAR(MAX) vs PostgreSQL TEXT; Oracle NUMBER vs SQL Server DECIMAL; MySQL JSON vs SQL Server JSON).

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

15.9.25

Оптимизация чувствительных к параметрам планов исполнения в SQL Server 2022

Автор: Deepam Ghosh, Parameter Sensitive Plan Optimization in SQL Server 2022

SQL Server 2022 включает множество усовершенствований и новых возможностей по сравнению с предыдущими версиями. Среди них новые роли сервера, улучшенный Query Store, повышение производительности TempDB, интеллектуальная обработка запросов, автономные группы доступности, Database Ledger и многое другое.

В сегодняшней статье мы рассмотрим практическую демонстрацию одной из таких возможностей — оптимизации планов, чувствительных к параметрам (Parameter Sensitive Plan Optimization, PSPO). Мы увидим, какие трудности создают параметризованные хранимые процедуры в старых версиях и как оптимизация PSPO решает эти проблемы и улучшает планы выполнения запросов в новой версии.

Эта статья посвящена только практической части, для изучения подробной теории об оптимизации планов, чувствительных к параметрам, обратитесь к официальной документации Microsoft.

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 – возвращает таблицу захваченных подстрок, которые соответствуют шаблону регулярного выражения строке. Если совпадение не найдено, функция не возвращает строку.

Накопительный пакет обновления 21 для SQL Server 2022 - KB5065865

Описание: KB5065865

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

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

Analysis Services — Версия: 16.0.43.247

Дата выпуска: 11 сентября 2025 г.

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

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

Описание: KB5065221

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

SQL Server 2022 — версия: 16.0.1150.1

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

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

Описание: KB5065220

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

SQL Server 2022 — версия: 16.0.4212.1

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

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

Описание: KB5065222

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

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

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

10.9.25

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

Описание: KB5065223

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

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

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

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

Описание: KB5065225

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

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

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

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

Описание: KB5065224

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

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

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

Исправление безопасности для SQL Server 2016 SP3 Azure Connect Feature Pack - KB5065227

Описание: KB5065227

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

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

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

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

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

Описание: KB5065226

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

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

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

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

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

9.9.25

Новое в SQL Server 2025: функция PRODUCT()

Автор: Edward Pollack, How to Use the New PRODUCT() Function in SQL Server 2025

С каждой версией SQL Server появляются новые возможности, за которые мы благодарны — наконец-то появляется доступ к полезным функциям, которые уже были в других системах.

В SQL Server 2025 CTP 1.3 была представлена функция PRODUCT(). Она ведёт себя похоже на SUM(), но умножает значения вместо того, чтобы их складывать. Это агрегатная функция в SQL Server, следовательно, она действует на набор данных, а не на скалярные значения.

8.9.25

Новое в SQL Server 2025: Кардинальность и REGEXP_LIKE

Автор: Louis Davidson, Cardinality and REGEXP_LIKE

Я читал пост Брента Озара о регулярных выражениях в SQL Server 2025 (T-SQL Has Regex in SQL Server 2025. Don’t Get Too Excited) и о том, почему они работают так, как работают. В комментариях кто-то упомянул несколько подсказок (hints), которые якобы должны улучшить ситуацию. О них написано немного, поэтому я решил сам проверить, как они себя ведут. Речь идёт о: ASSUME_FIXED_MAX_SELECTIVITY_FOR_REGEXP и ASSUME_FIXED_MIN_SELECTIVITY_FOR_REGEXP. Они работают, корректируя ожидаемое количество строк, возвращаемых условием с оператором REGEXP.