У меня есть этот запрос SQL:
SELECT * FROM IMAGES WHERE
IMAGENAME in ('IMG1', 'IMG2', 'IMG3', 'IMG4', 'IMG5', 'IMG6')
ORDER BY CASE IMAGENAME
WHEN 'IMG1' THEN 1
WHEN 'IMG2' THEN 2
WHEN 'IMG3' THEN 3
WHEN 'IMG4' THEN 4
WHEN 'IMG5' THEN 5
WHEN 'IMG6' THEN 6
ELSE 7
END
Я не могу гарантировать, что список IMAGENAME будет в алфавитном порядке, следовательно, оператор case, но я бы предпочел сортировать в БД, а не в коде, потому что я доверяю их коду сортировки лучше, чем моему:)
SQL-сервер анализирует, что 78% времени выполнения тратится на сортировку - можно ли это уменьшить?
Это должен быть довольно ванильный SQL, поскольку мы нацелены на SQL Server и Oracle.
Любой совет по настройке был бы фантастическим.