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

14.10.24

CASE Subqueries in BETWEEN and CASE Statements

Автор: 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

26.9.24

Новое в SQL Server 2022: улучшения в sys.dm_exec_query_statistics_xml

Автор: 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 предоставляет подробную статистику выполнения запросов, что очень полезно для повышения их производительности и для оптимизации.

10.7.24

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

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

Описание: KB5040946

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

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

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

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

Описание: KB5040944

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

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

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

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

Описание: KB5040942

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

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

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

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

Описание: KB5040940

Скачать:

   SQLServer2017-KB5040940-x64.exe

   SQLEXPRADV_x64_ENU.exe

   SQLEXPR_x64_ENU.exe

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

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

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

Описание: KB5040986

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

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

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

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

Описание: KB5040948

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

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

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

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

Описание: KB5040936

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

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

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

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

Описание: KB5040939

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

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

3.7.24

Новое в SQL Server 2022: tempdb Contention Enhancements with Page Latch Concurrency

https://www.mssqltips.com/sqlservertip/8025/sql-server-2022-tempdb-contention-enhancements/

Автор 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, поэтому для получения выгоды от этого улучшения необходимо выполнить обновление версии.

14.5.24

Conversion and Arithmetic Errors

Craig Freedman's SQL Server Blog

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.

25.4.24

Hash Join

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

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

Когда Вы встречаете случай использования оператора Hash Join (хэш-соединение), это говорит о наличии тяжелого запроса. В отличие то соединения Nested Loops Join, которое хорошо для относительно маленьких наборов данных, и от соединения Merge Join, которое помогает при умеренных размерах наборов данных, хэш-соединение превосходит другие типы соединений при необходимости соединения огромных наборов данных. Хэш-соединения распараллеливается и масштабируется лучше любого другого соединения и сильно выигрывает при большой производительности информационных хранилищ (я вернусь к обсуждению параллельного выполнения запросов в следующей серии статей).

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-соединение, для краткости).