【发布时间】:2016-03-24 15:16:59
【问题描述】:
我需要在列上创建索引以获得更好的性能。该列是时间戳类型,并且是基于函数的索引。 问题是:此专栏更新非常频繁。
Oracle 文档说不要索引经常修改的列。
那么有没有更好的方法来查询这个列?
编辑:
在以下查询中,列是 VALIDATIONTIME:
select *
from orders
where VALIDATIONTIME between
TO_TIMESTAMP('2016/03/06 10:45:18', 'YYYY/MM/DD HH24:MI:SS')
and
TO_TIMESTAMP('2016/03/15 19:50:18', 'YYYY/MM/DD HH24:MI:SS');
【问题讨论】:
-
只有在有助于解决性能问题的情况下才应建立索引。诀窍是找出流程中的瓶颈。如果您的更新花费的时间太长 - 不要创建索引,如果您的选择是您的问题 - 请创建一个。没有要遵循的单一规则,Oracle 的文档仅推荐在这些情况下的最佳实践。
-
正如上面提到的人,它只是一个权衡。为您的应用程序测试它,并根据最终目标权衡结果。