也许是一个愚蠢的问题,但是使用基于函数的索引是否安全。我的意思是,当列更改时索引会立即更改吗?
假设它们设置正确,是的。
概述:
Oracle 在带有基于函数的索引的表上创建一个隐藏列,每次更改基于函数的索引的列时都会更新该隐藏列;假设这些值是确定性的(有关更多信息,请参阅 oracle 链接)。您可以通过查询创建了基于函数的索引的表的系统对象 all_tab_cols 来查看这些隐藏列。它们通常包含一个 $,看起来像 SYS_NC00005$。
当您想要处理区分大小写或处理重复的函数调用时,通常会使用它们,而执行函数调用的开销如此频繁,以至于计算一次值并保留它的预先时间会带来性能增益。
补充阅读:
- Ask Tom http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:667694821129
- 堆栈溢出 https://stackoverflow.com/questions/177240/how-to-use-a-function-based-index-on-a-column-that-contains-nulls-in-oracle-10
- ORACLE http://docs.oracle.com/cd/B19306_01/server.102/b14231/indexes.htm#i1006674
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)