2014-11-03 120 views
1

我有一张巨大的表格,我不能再进行任何分区或子分区,也不允许进行任何修改。我想通过批量查询其记录,并认为一个好方法是使用帐号中的最后两位数字(不会有任何其他字段分裂记录均匀)。在Oracle中为数字的最后两位数字创建索引

我想我至少需要索引,不知何故(记住我不能改变表添加虚拟列)。

在这种情况下是否有任何种类的索引?

我使用的是Oracle 11gR2的

+1

一个基于函数的索引可能会有所帮助 – Multisync 2014-11-03 16:50:30

+0

谢谢,将研究一下! – filippo 2014-11-03 16:55:50

回答

3

您可以使用function based index

create index two_digits_idx on table_name (substr(account_number, -2)); 

该指标将只在这样的疑问:

select ... 
    from table_name t ... 
where substr(account_number, -2) = '25' -- or any other two digits 

对于使用索引,你需要使用在查询中像索引中一样的表达式。

相关问题