Миграция в новый кластер подразумевает, что для перемещаемой группы доступности необходимо создать новую первичную реплику на сервере в новом кластере. Основной целью планирования миграции группы доступности в другой кластер является минимизация времени недоступности ресурсов. Для этого ресурсы переезжают на новый, специально выделенный для этого сервер. Новый сервер вначале подключается, как вторичная реплика с синхронной фиксацией, а потом принимает на себя роль первичной реплики. Прослушиватель группы доступности удаляется из старого кластера и заново создаётся в новом кластере, вслед за созданием группы доступности.
12.4.23
11.4.23
Агрегат WITH ROLLUP
Автор оригинала: Craig Freedman: Aggregation WITH ROLLUP
В этой статье мы обсудим, как устроен агрегат WITH ROLLUP. Использование предложения WITH ROLLUP позволяет выполнить несколько «уровней» агрегации в одном операторе. Например, предположим, что у нас есть некие данные о продажах (это те же данные, которые я использовал в серии статей об операторе PIVOT).
22.3.23
Погружение в уникальные индексы
Автор оригинала: Craig Freedman: Maintaining Unique Indexes
Рассмотрим следующий пример:
CREATE TABLE T (PK INT PRIMARY KEY, A INT, B INT)
CREATE INDEX TA ON T(A)
CREATE UNIQUE INDEX TB ON T(B)
INSERT T VALUES (0, 0, 0)
INSERT T VALUES (1, 1, 1)
Теперь предположим, что мы выполним обновление:
UPDATE T SET A = 1 – A
Это изменение влияет на кластерный индекс (PK__T__15502E78) и на некластерный индекс TA. План в значительной степени такой, какой мы ожидали:
|--Clustered Index
Update(OBJECT:([T].[PK__T__15502E78]), OBJECT:([T].[TA]), SET:([T].[A] =
[Expr1003]))
|--Compute
Scalar(DEFINE:([Expr1016]=[Expr1016]))
|--Compute
Scalar(DEFINE:([Expr1016]=CASE WHEN [Expr1004] THEN (1) ELSE (0) END))
|--Compute Scalar(DEFINE:([Expr1003]=(1)-[T].[A], [Expr1004]=CASE WHEN [T].[A]
= ((1)-[T].[A]) THEN (1) ELSE (0) END))
|--Top(ROWCOUNT est 0)
|--Clustered Index Scan(OBJECT:([T].[PK__T__15502E78]))
Это типичный «узкий» план обновления. В одном операторе обновления затрагиваются кластерный и некластерный индексы. План содержит Compute Scalar, которые определяют, нужно ли изменять соответствующую строку некластерного индекса. О подобных планах я писал в этой статье.
Доступна для скачивания SQL Server Management Studio 19.0.2
SSMS 19.0.2 — это последняя общедоступная версия. Если у вас установлена предварительная версия SSMS 19, ее следует удалить перед установкой SSMS 19.0.2. Если у вас установлена среда SSMS 19.x, при установке SSMS 19.0.2 она обновляется до версии 19.0.2.
- Номер выпуска: 19.0.2
- Номер сборки: 19.0.20209.0
- Дата выпуска: 13 марта 2023 г.
Скачать SSMS можно по ссылке: SSMS-Setup-ENU.exe
Подробное описание и версии для других языков доступны тут: Скачивание SQL Server Management Studio (SSMS)
16.3.23
Вышел Cumulative Update 2 for SQL Server 2022 (KB5023127)
Версия MSSQL: 16.0.4015.1
Версия SSAS: 16.0.43.2089.3.23
Поиск и устранение повреждений данных
Это выдержка из восьмой главы книги Rodney Landrum: «SQL Server Tacklebox», в которой описывается, как DBA может устранить последствия повреждения данных. Будут продемонстрированы инструменты и сценарии, необходимые для своевременного поиска и устранения повреждений данных и предотвращения их попадания в резервные копии.
Чудовище Data Corruption может быть тихим и незаметным убийцей пользовательских данных. Оно может нанести удар сразу или ждать неделями, прежде чем проявится сущим кошмаром. Нет, я не говорю о разработчиках, речь пойдёт о повреждении базы данных.
Если Вы достаточно долго работаете администратором баз данных, то уже наверняка сталкивались с этим монстром по крайней мере в одной из его многочисленных форм. Часто такие повреждения происходят после сбоя электропитания, когда сервер вместо того, чтобы корректно завершить работу, просто умирает в процессе изменения данных. В результате этой, или какой-либо другой неисправности оборудования, данные или индексы получают повреждения прямо на диске и SQL Server больше не может их использовать, пока целостность не будет восстановлена.
17.2.23
Вышли SQL Server 2022 CU1 и SQL Server 2019 CU19
Cumulative Update 1 for SQL Server 2022
Описание: https://learn.microsoft.com/ru-ru/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate1
Cumulative Update 19 for SQL Server 2019
Описание: https://support.microsoft.com/en-us/help/5023049
Дополнительно:
SQL
Server 2022 Gets Its 2nd Update in 2 Days
16.2.23
Вышли исправления безопасности для всех версий SQL Server – валентинка от SQL Server Team
Это обновление для системы безопасности содержит пять
исправлений и устраняет уязвимости. Дополнительные сведения об уязвимостях
смотрите в следующих рекомендациях по безопасности:
§ CVE-2023-21528
— уязвимость Microsoft SQL Server удаленного выполнения кода
§ CVE-2023-21704
— Уязвимость драйвера MICROSOFT ODBC для SQL Server удаленного выполнения кода
§ CVE-2023-21705
— уязвимость Microsoft SQL Server удаленного выполнения кода
§ CVE-2023-21713
— уязвимость Microsoft SQL Server, связанная с удаленным выполнением кода
§ CVE-2023-21718
— уязвимость драйвера ODBC Microsoft SQL, связанная с удаленным выполнением
кода
SQL Server 2022
Обновления
безопасности для SQL Server 2022 RTM GDR
27.1.23
Внутренняя оптимизация для индексов в «широком» плане запроса
В предыдущей статье было показано как SQL Server выполняет изменения в некластерных индексах, но пока только в тех случаях, когда данные в индексе действительно изменяются. В примере из прошлой статьи использовался простой оператор UPDATE, который порождает построчный или «узкий» план запроса. В этой статье будет показано как оптимизируется план с изменениями данных с индексами в «широком» плане запроса.
Релиз SQL Server Management Studio 19.0
· Номер выпуска: 19.0
· Номер сборки: 19.0.20196.0
· Дата выпуска: 26 января 2023 г.
Подробности выпуска тут: https://learn.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16&tabs=command-line
SQL Server Management Studio 19.0.1:
Китайский (упрощенное письмо) | Китайский (традиционное письмо) | Английский (США) | Французский | Немецкий | Итальянский | Японский | Корейский | Португальский (Бразилия) | Русский | Испанский
20.1.23
Внутренняя оптимизация операций изменения для индексов
Планы запросов на вставку, изменение и удаление состоят из двух частей. Первая часть называется курсор чтения, и она определят то множество строк, которое необходимо вставить, изменить или удалить. Вторая часть называется курсор записи, и в этой части непосредственно происходит вставка, изменение или удаление данных. Давайте рассмотрим простой пример:
SQL Server 2012 Database Engine Task Scheduling
Автор: Боб Дорр – главный эскалационный инженер поддержки SQL Server
По материалам статьи: How It Works: SQL Server 2012 Database Engine Task Scheduling
В течении последних лет в разных источниках были описаны алгоритмы работы планировщика SQL Server. В частности, в статье «The Guru’s Guide to SQL Server Architecture and Internals» есть глава, написанная разработчиком планировщика (Sameer) и Кеном Хендерсеном. Автор этой статьи иранее описывал некоторые технические детали алгоритмов планирования задач SQLServer.
Эта статья посвящена некоторым изменениям, которые появились в SQL Server 2012. Статья не претендует на охват всех нюансов (коих слишком много), вместо этого будет частично проиллюстрирована работа алгоритма в его современной реализации, что позволит вам лучше понимать поведение планировщика SQLServer . Автор допускает по тексту несколько вольную трактовку в описании алгоритмов, преследуя цель избавить статью от лишней официальности.