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