23.4.24

Функции ранжирования: RANK, DENSE_RANK, and NTILE

Автор оригинала: Craig Freedman


В предыдущей статье обсуждалась функция ROW_NUMBER. Сейчас же мы рассмотрим другие функции ранжирования: RANKDENSE_RANK и NTILE. Начнем с RANK и DENSE_RANK. Эти функции по функциональности и реализации аналогичны ROW_NUMBER. Разница заключается в том, что ROW_NUMBER присваивает уникальные возрастающие значения каждой строке, не обращая внимания на повторение значений выражения сортировки, тогда как RANK и DENSE_RANK присваивают одинаковые значения строкам с одинаковым значением выражения сортировки. Разница между функциями RANK и DENSE_RANK заключается в том, как значения присваиваются строкам.

17.4.24

Nested Loops Join


Автор оригинала: Craig Freedman

По материалам статьи Craig Freedman: Nested Loops Join

SQL Server поддерживает три физические оператора соединений: соединение вложенных циклов, соединение слиянием и хэш-соединение. В этой статье я опишу соединение вложенных циклов - Nested Loops Join (или NL-соединение, для краткости).

10.4.24

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

 SQL Server 2019


Описание:

Скачать:

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

Описание уязвимости:

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





SQL Server 2022
Описание:

Скачать:

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

Описание уязвимости:

1.4.24

Сильное шифрование подключения SQL Server Management Studio 20 к Microsoft SQL Server 2022

Автор оригинала: Erin Stellato


Эта статья о том, что нового появилось в SQL Server Management Studio 20 (SSMS), и является второй из серии статей на эту тему. Первую статью можно почитать тут: Upcoming changes for SQL Server Management Studio (SSMS) - Part 1.Заключительной статьёй в серии является: Upcoming changes for SQL Server Management Studio (SSMS) - Part 3. SSMS 20 может удивить Вас сразу после установки, когда вдруг обнаружится что по умолчанию предполагается шифрованное соединение SSMS с сервером баз данных. На то, чтобы помочь пользователям SSMS справится с этой проблемой и добиться лучшей защиты соединения с помощью новых механизмов шифрования SQL Server 2022, как раз и направлена эта статья.

27.3.24

Ranking Functions: ROW_NUMBER

 Автор оригинала: Craig Freedman


Четыре функции ранжирования: ROW_NUMBER, RANK, DENSE_RANK и NTILE появились в SQL Server 2005 и отличаются от обычных скалярных функций тем, что результат, который они выдают для строки, зависит от других строк выборки. От агрегатных функций они отличаются тем, что возвращают только одну строку для каждой строки на входе, т.е. они не объединяют набор строк в одну. В этой статье мы рассмотрим ROW_NUMBER — самую простую из всех функций ранжирования.

5.3.24

Halloween Protection


Автор оригинала: Craig Freedman

В предыдущей статье Внутренняя оптимизация операций изменения для индексов было рассказано о том, что планы запроса для UPDATE состоят из двух частей: курсора чтения, который выбирает строки, которые необходимо изменить, и курсора записи, который и выполняет изменения. SQL Server использует такую логику изменения, следуя которой курсоры чтения и записи в плане с UPDATE выполняются двумя отдельными шагами или фазами. Другими словами, фактическое изменение в строке не должно влиять на выбор строк изменения. С этим связана описанная ниже проблема, для преодоления которой нужно обеспечить такую работу курсора записи в плане с UPDATE, чтобы он не влиял на курсор чтения, эта проблема известна под названием «Halloween Protection». Такое имя она получила поскольку была обнаружена исследователями IBM более 30 лет назад в Хэллоуин.

1.3.24

Read Committed Isolation Level


По материалам статьи Craig Freedman: Read Committed Isolation Level

SQL Server 2000 поддерживал четыре уровня изоляции транзакций: «read uncommitted» (nolock), «read committed», «repeatable read» и «serializable». В SQL Server 2005 были добавлены два новых уровня изоляции: «read committed snapshot» и «snapshot». Указание уровня изоляции определяет, какие блокировки будут использованы SQL Server при доступе к данным. Следовательно, выбор уровня изоляции фактически определяют степень параллелизма и согласованности, которые станут возможны для операций с данными и транзакций. Все указанные уровни изоляции описаны в Books Online.

29.2.24

Стандартные шаги исполнения запроса


По материалам статьи Craig Freedman: The Building Blocks of Query Execution

Что такое итератор?

SQL Server декомпозирует запросы, преобразуя их в набор стандартных блоков-примитивов, которые принято называть операторами или итераторами. Каждый итератор служит для выполнения одной операции, например, просмотр (сканирование), изменение, фильтрация или соединение данных таблиц, а также соединение двух наборов данных. Всего известно несколько дюжин таких примитивных итераторов. Итераторы могут иметь одну или несколько дочерних записей и могут объединяться в деревья, которые принято называть планом исполнения запроса. Любая инструкция SQL выполняется по соответствующему плану запроса. Для одной инструкции на практике может существовать много правильных планов исполнения запроса. Оптимизатор запросов старается найти лучший (например, самым дешевый) план запроса для каждой инструкции.

Свойства итераторов

По материалам статьи Craig Freedman

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