基于Oracle函数的索引

时间:2012-04-13 13:12:36

标签: oracle indexing

也许是一个愚蠢的问题,但使用基于函数的索引是否安全。我的意思是,当列更改时,索引会立即更改吗?

1 个答案:

答案 0 :(得分:10)

假设它们设置正确,是的。

概述: Oracle使用基于函数的索引在表上创建一个隐藏列,每次更改基于函数的索引的列时都会更新该列;假设值是确定性的(有关详细信息,请参阅oracle链接)。您可以通过查询系统对象all_tab_cols查看创建基于函数的索引的表来查看这些隐藏列。它们通常包含$,看起来像SYS_NC00005 $。

当你想要处理区分大小写或处理重复函数调用时经常使用它们,在这些函数上执行函数调用的开销是这样的频率,即计算值一次并保留它的前期值会导致性能获得。

补充阅读: