我有一个查询,我在搜索字符串:
SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO';
Run Code Online (Sandbox Code Playgroud)
现在,这工作正常,但它不能很好地扩展,我需要优化它.我找到了一个创建生成视图的选项,或类似的东西,但我希望使用索引的更简单的解决方案.
我们正在使用DB2,我真的想在索引中使用表达式,但是这个选项似乎只能在z/OS上使用,但我们运行的是Linux.我还是尝试了表达式索引:
CREATE INDEX city_upper_name_idx
ON city UPPER(name) ALLOW REVERSE SCANS;
Run Code Online (Sandbox Code Playgroud)
但当然,它在UPPER(名称)上窒息.
是否有另一种方法可以以这种方式创建索引或类似的东西,这样我就不必重新构建现有的查询以使用新生成的视图,或者更改现有列,或任何其他此类侵入式更改?
编辑:我愿意听取其他数据库的解决方案......它可能会延续到DB2 ......