使用模式索引oracle中的varchar2列?

时间:2017-11-16 12:57:43

标签: sql oracle indexing

我在索引oracle

时遇到问题

给出了SQL查询(意思是,它是自动生成的,我无法适应它):

select * from t where f like 'AA.%.123456.%'

在列f上,存在唯一索引,但oracle优化器没有使用它(它正在进行全表扫描)

我认为这是因为数据

f列中的数据始终以AA

开头

请注意以下数据示例:

AA.248117.123456.UAAA
AA.741447.123456.UAAA
AA.741449.123456.UAAA
AA.741450.123456.UAAA
AA.322812.123456.UAAA
AA.741363.123456.UZZZ
AA.741365.123456.UZZZ
AA.356110.123456.UZZZ
AA.356333.456789.UBBB
AA.256321.456789.UBBB
AA.333219.456789.UBBX

我的问题: 是否可以使用字符串模式创建oracle索引?

将索引表示为某种子字符串(但不使用基于函数的索引Substr(),如上所述,我无法更改查询)

索引应如下所示

'AA.<someNumberNotRelevant>.<indexedValue>.<someStringNotRelevant>'

由于

0 个答案:

没有答案