ORACLE RAW列不走索引的问题解决

一、表结构

LABEL_PARAM有2亿多的数据。不走索引查一条数据需要花费5-10分钟。

 

 

 二、不走索引的SQL和执行计划

select * from MITLABELMANAGER.label_param where label_id = 'C4A879E9CC8246FB9053004735F2604A' 

 

 

发现LABEL_ID列需要通过RAWTOHEX方法转换成HEX类型再与ID进行比较,由于经过了转换,所以必须要进行全表扫描了。

所以只要提前将ID转换成RAW类型的输入就可以解决问题。

三、优化后的可以走索引的SQL和执行计划

优化之后走索引了,每次查询只需要零点几秒,满足生产查询要求

select * from MITLABELMANAGER.label_param where label_id = HEXTORAW('C4A879E9CC8246FB9053004735F2604A') 

 

 

 

posted @ 2022-01-12 08:54  迷神图卷  阅读(301)  评论(0编辑  收藏  举报