我有一个查询,其中我正在针对一个字符串进行搜索:
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;
当然,它会在UPPER(name)处出现错误。
是否有另一种方法可以创建索引或类似的东西,以便我不必重构现有查询以使用新生成的视图,或更改现有列,或进行任何其他这样的侵入性更改?
编辑:我愿意听取其他数据库的解决方案……它可能会延续到DB2……