Mam kwerendy, gdzie szukam na sznurku:Niewrażliwy indeks bazy danych?
SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO';
Teraz to działa prawidłowo, ale nie skaluje się dobrze, i muszę go zoptymalizować. Mam found an option wzdłuż linii tworzenia wygenerowanego widoku lub coś podobnego, ale miałem nadzieję na prostsze rozwiązanie przy użyciu indeksu.
Używamy DB2, i naprawdę chcę użyć expression in an index, ale opcja ta wydaje się być dostępna tylko w systemie z/OS, ale używamy systemu Linux. Mimo to spróbowałem indeksu wyrażenia:
CREATE INDEX city_upper_name_idx
ON city UPPER(name) ALLOW REVERSE SCANS;
Ale oczywiście dławi się NA GÓRZE (nazwa).
Czy istnieje inny sposób, w jaki mogę utworzyć indeks lub coś podobnego w ten sposób, że nie będę musiał zmieniać moich dotychczasowych zapytań, aby korzystać z nowego wygenerowanego widoku, ani zmieniać moich istniejących kolumn, ani żadnej innej takiej inwazyjnej zmiany? ?
EDIT: Jestem otwarty na kontakt rozwiązania dla innych baz danych ... to może przenieść do DB2 ...
Niestety, DB2/LUW tego jeszcze nie ma, ale prawdopodobnie nadchodzi od czasu, gdy DB2/z go posiada. – paxdiablo