У меня есть запрос, в котором я ищу строку:
SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO';
Теперь это работает нормально, но плохо масштабируется, и мне нужно его оптимизировать. Я нашел вариант создания сгенерированное представление или что-то в этом роде, но я надеялся на более простое решение с использованием индекса.
Мы используем DB2, и я действительно хочу использовать выражение в индексе, но эта опция, по-видимому, доступна только в z/OS, однако мы используем Linux. Я все равно попробовал индекс выражения:
CREATE INDEX city_upper_name_idx
ON city UPPER(name) ALLOW REVERSE SCANS;
Но, конечно, давится ВЕРХНИМ (имя).
Есть ли другой способ создать индекс или что-то подобное таким образом, чтобы мне не нужно было реструктурировать мои существующие запросы для использования нового сгенерированного представления или изменять мои существующие столбцы или любые другие подобные навязчивые изменения?
РЕДАКТИРОВАТЬ: я готов выслушать решения для других баз данных... это может быть перенесено на DB2...