какой sql запрос быстрее CASE WHEN THEN или ELT
Подскажите, какой sql запрос быстрее будет выполняться - с использованием CASE WHEN THEN или с ELT?
Есть тяжёлый, даже очень запрос UPDATE ... SET column=SET WHEN ... THEN ELSE column END. Очень большой и выполняется крайне медленно.
Может с использованием ELT быстрее пойдёт?
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Поскольку вы занимаетесь оптимизацией и вам интересен лишь данный участок, то проще всего заменить и сравнить результаты.
Но на вашем месте я пошел бы по другому пути.
- Сколько записей задействовано в запросе.
- Убрал бы вовсе CASE переходы и поставил бы какое нибудь константное значение.
- Поставил рандомное значение. Значение возращяемое какой либо функцией.
- Сократил бы количество переходов, да бы выяснить какой конкретно лочит либо загружает таблицу
- Постоянно сравнивал бы результаты с эталонным Update