какой sql запрос быстрее CASE WHEN THEN или ELT

Подскажите, какой sql запрос быстрее будет выполняться - с использованием CASE WHEN THEN или с ELT? Есть тяжёлый, даже очень запрос UPDATE ... SET column=SET WHEN ... THEN ELSE column END. Очень большой и выполняется крайне медленно. Может с использованием ELT быстрее пойдёт?


Ответы (1 шт):

Автор решения: Aziz Umarov

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

Но на вашем месте я пошел бы по другому пути.

  1. Сколько записей задействовано в запросе.
  2. Убрал бы вовсе CASE переходы и поставил бы какое нибудь константное значение.
  3. Поставил рандомное значение. Значение возращяемое какой либо функцией.
  4. Сократил бы количество переходов, да бы выяснить какой конкретно лочит либо загружает таблицу
  5. Постоянно сравнивал бы результаты с эталонным Update
→ Ссылка