Относительная производительность SQLServer для подстроки по сравнению с комбинацией «право-лево»

Это вопрос, основанный на производительности, а не вопрос « Я не понимаю » или « передовой опыт ».

У меня есть вопрос varchar в базе данных SQLServer, длина которого гарантированно превышает 7 символов. Мне нужно извлечь поле char (4), состоящее из 2-го, 3-го, 4-го и 5-го символов в varchar.

Например, если бы varchar имел значение 1234567890, я бы искал часть 2345.

Is есть ли преимущество в производительности при использовании подстроки по сравнению с комбинацией справа-слева?

SELECT SUBSTRING(account,2,4) FROM payment

или

SELECT RIGHT(LEFT(account,5),4) FROM payment

Я заметил небольшое преимущество при использовании правой-левой в таблице с 1760 335 записями, но я не уверен, связано ли это с запросами кеширования и т.п.

ОБНОВЛЕНИЕ Я сделал еще немного домашней работы. Кажется, что в этом случае Right-Left в конечном итоге выполняется как Right-Substring. Это правило? или это просто способ, которым SQLServer решил снять шкуру с этой кошки? alt text

10
задан Community 23 May 2017 в 10:30
поделиться