Скорость присвоения множественных переменных в T-SQL

Представьте, что у меня есть фрагмент кода инициализации в верхней части хранимой процедуры с рядом назначений переменных:

SET @proc = 'sp_madeupname'
SET @magic_number = 42
SET @tomorrows_date = DATEADD(dd, 1, GETDATE())
...

Ясно, что все вышеперечисленное, так как один SELECT будет быстрее:

SELECT
     @proc = 'sp_madeupname'
    ,@magic_number = 42
    ,@tomorrows_date = DATEADD(dd, 1, GETDATE())
...

Но сколько быстрее? Скажем, если эта хранимая процедура выполнялась как часть цикла несколько тысяч раз, будет ли это иметь какое-либо существенное влияние на производительность?

За пределами сигналов Angular: Сигналы и пользовательские стратегии рендеринга
За пределами сигналов Angular: Сигналы и пользовательские стратегии рендеринга
TL;DR: Angular Signals может облегчить отслеживание всех выражений в представлении (Component или EmbeddedView) и планирование пользовательских...
Sniper-CSS, избегайте неиспользуемых стилей
Sniper-CSS, избегайте неиспользуемых стилей
Это краткое руководство, в котором я хочу поделиться тем, как я перешел от 212 кБ CSS к 32,1 кБ (сокращение кода на 84,91%), по-прежнему используя...
0
0
1 221
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думал об этом, но никогда не проверял.

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

Я думаю, что выполнение нескольких назначений может быть полезно с точки зрения обслуживания, если вы хотите, чтобы некоторые вещи, которые всегда должны выполняться вместе, не разбивались на вырезание и вставку или рефакторинг.

По той же причине код, который является относительно модульным, может выиграть от отдельной инициализации, поскольку ее легче вырезать и вставить для рефакторинга во время обслуживания.

Ответ принят как подходящий

В этом случае SELECT выигрывает с точки зрения производительности при выполнении нескольких назначений.

Вот еще немного информации об этом:

SELECT vs. SET: Оптимизация циклов

Другие вопросы по теме