В статьях по оптимизации нашел вот такой пример:
SELECT substring(',' + @param + ',', Number + 1,
charindex(',', ',' + @param + ',', Number + 1) - Number - 1)
AS Value
FROM Numbers
WHERE Number <= len(',' + @param + ',') - 1
AND substring(',' + @param + ',', Number, 1) = ','
Не надо вникать в суть этого запроса...
У меня возник вот какой вопрос: Действительно ли оптимально будет четыре раза повторять выражение
',' + @param + ','
или все же оптимальней будет объявить переменную, вычислить выражение один раз и затем использовать его:
declare @str nvarchar(500)
set @str = ',' + @usedWords + ','
SELECT substring(@str, Number + 1,
charindex(',', @str, Number + 1) - Number - 1)
AS Value
FROM Numbers
WHERE Number <= len(@str) - 1
AND substring(@str, Number, 1) = ','
или я слишком загоняюсь по оптимальности и тут не будет вообще никакой разницы по скорости работы?