1
我有一张巨大的表格,我不能再进行任何分区或子分区,也不允许进行任何修改。我想通过批量查询其记录,并认为一个好方法是使用帐号中的最后两位数字(不会有任何其他字段分裂记录均匀)。在Oracle中为数字的最后两位数字创建索引
我想我至少需要索引,不知何故(记住我不能改变表添加虚拟列)。
在这种情况下是否有任何种类的索引?
我使用的是Oracle 11gR2的
我有一张巨大的表格,我不能再进行任何分区或子分区,也不允许进行任何修改。我想通过批量查询其记录,并认为一个好方法是使用帐号中的最后两位数字(不会有任何其他字段分裂记录均匀)。在Oracle中为数字的最后两位数字创建索引
我想我至少需要索引,不知何故(记住我不能改变表添加虚拟列)。
在这种情况下是否有任何种类的索引?
我使用的是Oracle 11gR2的
您可以使用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
对于使用索引,你需要使用在查询中像索引中一样的表达式。
一个基于函数的索引可能会有所帮助 – Multisync 2014-11-03 16:50:30
谢谢,将研究一下! – filippo 2014-11-03 16:55:50