SQL Server 2019 — версия: 15.0.4405.4
Описание: KB5046365
Скачать: SQLServer2019-KB5046365-x64.exe
SQL Server 2019 — версия: 15.0.4405.4
Описание: KB5046365
Скачать: SQLServer2019-KB5046365-x64.exe
Автор:
Craig Freedman Subqueries in BETWEEN and CASE
Statements
Рассмотрим следующий запрос:
CREATE TABLE T1 (A INT, B1 INT, B2 INT)
CREATE TABLE T2 (A INT, B INT)
SELECT *
FROM T1
WHERE (SELECT SUM(T2.B) FROM T2 WHERE T2.A = T1.A) BETWEEN T1.B1 AND T1.B2
Автор: Vivek Janakiraman Unleashing SQL Server 2022: Enhancements to sys.dm_exec_query_statistics_xml
Одним из улучшений в SQL Server 2022 является дальнейшее совершенствование динамического административного представления (DMV) sys.dm_exec_query_statistics_xml. Этот DMV предоставляет подробную статистику выполнения запросов, что очень полезно для повышения их производительности и для оптимизации.
SQL Server 2019 — версия: 15.0.4385.2
Описание: KB5039747
Скачать: SQLServer2019-KB5039747-x64.exe
SQL Server 2022 — версия: 16.0.4135.4
Описание: KB5038325
Скачать: SQLServer2022-KB5038325-x64.exe
SQL Server 2016 — версия: 13.0.6441.1
Описание: KB5040946
Скачать: SQLServer2016-KB5040946-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2016 — версия: 13.0.7037.1
Описание: KB5040944
Скачать: SQLServer2016-KB5040944-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2017 — версия: 14.0.2056.2
Описание: KB5040942
Скачать: SQLServer2017-KB5040942-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2017 — версия: 14.0.3471.2
Описание: KB5040940
Скачать:
SQLServer2017-KB5040940-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2019 — версия: 15.0.2116.2
Описание: KB5040986
Скачать: SQLServer2019-KB5040986-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2019 — версия: 15.0.4382.1
Описание: KB5040948
Скачать: SQLServer2019-KB5040948-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2022 — версия: 16.0.4131.2
Описание: KB5040936
Скачать: SQLServer2022-KB5040936-x64.exe
Дата выпуска: 09.07.2024
SQL Server 2022 — версия: 16.0.4131.2
Описание: KB5040939
Скачать: SQLServer2022-KB5040939-x64.exe
Дата выпуска: 09.07.2024
Автор Simon Liew
Tempdb используется в качестве промежуточного хранилища и репозитория метаданных,
и все эти объекты в SQL Server могут быть источником высокой нагрузки, а
также приводить к конфликтам и конкуренции в критически-важных для работы
сервера местах. Проявление этих негативных факторов возможно при использовании
временных таблиц, триггеров, промежуточной материализации данных для спулов,
курсоров, сортировок, хэш-соединений и больших объектов (LOB), и это лишь наиболее очевидные источники проблем.
Ещё одной распространённой проблемой является конкуренция за страницы системных
объектов Global Allocation Map (GAM) и Shared Global Allocation Map (SGAM), это особенно актуально для некоторых видов нагрузки
с высоким уровнем параллелизма.
SQL Server 2022 привнёс множество впечатляющих новых функций,
некоторые из которых более широко известны, чем другие. Одно из менее известных
новшеств — улучшение параллелизма блокировки системных страниц.
В SQL Server 2022 страницы GAM практически лишены кратких блокировок (latch-free), и это меняет правила игры для тех типов рабочей нагрузки, где это порождало проблемы и с которыми было нелегко справиться. Однако эта функция недоступна в более ранних версиях SQL Server, поэтому для получения выгоды от этого улучшения необходимо выполнить обновление версии.
SQL Server 2019 — версия продукта: 15.0.4375.4
Описание: KB5037331
Скачать: SQLServer2019-KB5037331-x64.exe
Дата выпуска: 13 июня 2024 г.
Описание: KB5036432
Скачать: SQLServer2022-KB5036432-x64.exe
Дата выпуска: 16 мая 2024 г.
https://learn.microsoft.com/en-us/archive/blogs/craigfr/conversion-and-arithmetic-errors
Давайте посмотрим на простой запрос:
CREATE TABLE T1 (A INT, B CHAR(8))
INSERT T1 VALUES (0, '0')
INSERT T1 VALUES (1, '1')
INSERT T1 VALUES (99, 'Error')
SELECT T1.A, CONVERT(INT, T1.B) AS B_INT FROM T1
Невозможно преобразовать строку «Error» в целое число, поэтому неудивительно, что этот запрос завершается ошибкой преобразования:
A B_INT ----------- ----------- 1 1 Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Error ' to data type int.
Автор оригинала: Craig Freedman
По материалам статьи Craig Freedman: Hash Join
Когда Вы встречаете случай использования оператора Hash Join (хэш-соединение), это говорит о наличии тяжелого запроса. В отличие то соединения Nested Loops Join, которое хорошо для относительно маленьких наборов данных, и от соединения Merge Join, которое помогает при умеренных размерах наборов данных, хэш-соединение превосходит другие типы соединений при необходимости соединения огромных наборов данных. Хэш-соединения распараллеливается и масштабируется лучше любого другого соединения и сильно выигрывает при большой производительности информационных хранилищ (я вернусь к обсуждению параллельного выполнения запросов в следующей серии статей).
Автор оригинала: Craig Freedman
В предыдущей статье обсуждалась функция ROW_NUMBER. Сейчас же мы рассмотрим другие функции ранжирования: RANK, DENSE_RANK и NTILE. Начнем с RANK и DENSE_RANK. Эти функции по функциональности и реализации аналогичны ROW_NUMBER. Разница заключается в том, что ROW_NUMBER присваивает уникальные возрастающие значения каждой строке, не обращая внимания на повторение значений выражения сортировки, тогда как RANK и DENSE_RANK присваивают одинаковые значения строкам с одинаковым значением выражения сортировки. Разница между функциями RANK и DENSE_RANK заключается в том, как значения присваиваются строкам.
По материалам статьи Craig Freedman: Nested Loops Join
SQL Server поддерживает три физические оператора соединений: соединение вложенных циклов, соединение слиянием и хэш-соединение. В этой статье я опишу соединение вложенных циклов - Nested Loops Join (или NL-соединение, для краткости).