【发布时间】:2018-04-02 09:16:02
【问题描述】:
我有一个表,其中包含两列
SPONSOR_ID number
NR_CERTIFICATE char(11)
这两列都有索引
NR_CERTIFICATE + SPONSOR_ID
这个表有几十万行,问题是,当我们按特定证书过滤时,选择需要纳秒的时间:
SELECT * FROM TBL_XXX WHERE NR_CERTIFICATE = '33300123456'
问题是当我们使用 LIKE 过滤时:
SELECT * FROM TBL_XXX WHERE NR_CERTIFICATE LIKE '%123456'
然后选择大约需要 15 秒。
我知道在这种情况下,索引被丢弃并进行表扫描。在这种情况下,有没有办法强制 ORACLE 使用索引?或者有没有办法加快这个选择?
【问题讨论】:
标签: oracle select query-optimization sql-like