To jest pytanie oparte na wydajności, a nie pytanie "I don't understand" lub "best practice".Względna wydajność w SQLServer dla kombinacji podłańcuch i kombinacja prawa i lewa
Mam pole varchar w bazie danych SQLServer, która ma więcej niż 7 znaków. Potrzebuję wyodrębnić pole char (4) składające się z 2, 3, 4 i 5 znaków w varcharze.
Na przykład, jeśli varchar miał wartość 1234567890, to szukałbym części 2345.
Czy istnieje korzyść związana z wydajnością korzystania z podłańcucha nad kombinacją po lewej i prawej stronie?
SELECT SUBSTRING(account,2,4) FROM payment
lub
SELECT RIGHT(LEFT(account,5),4) FROM payment
zauważyłem niewielki przewagę stosując prawo-lewo na stole z 1,760,335 rekordów, ale nie jestem pewien, czy to ze względu na kwerendy buforowania lub temu lubić.
UPDATE Zrobiłem trochę więcej pracy domowej. Wydaje się, że w tym przypadku lewica prawostronna jest ostatecznie wykonywana jako prawe podciąganie. Czy to jest reguła? czy jest to po prostu sposób, w jaki SQLServer zdecydował się na skórze tego konkretnego kota?
Jedynym sposobem na upewnienie się w danych okolicznościach jest porównanie ... –