Oracle查询隐式类型转换不走索引

本文介绍了在Oracle数据库中,由于隐式类型转换导致查询不使用索引的问题。通过框架如MyBatis进行操作时,这个问题可能会引发性能下降。主要原因是Oracle在比较时若涉及不同类型,会尝试隐式转换,但这种转换可能导致索引无法被有效利用。解决方法包括明确指定数据类型、避免隐式转换和重构查询语句,确保索引的有效使用。
摘要由CSDN通过智能技术生成

1. 框架

mybatis,oracle

2. 问题

昨天DBA发来邮件说有一个SQL引起CPU高负载。查看了一下SQL,根据时间条件查询,时间是有索引的,但是CPU会突然飙高。
SELECT * FROM (
SELECT t1.*,rownum as rn
FROM (
SELECT count(:"SYS_B_0") as COUNT ,T.USER_ID, T.USER_NAME
FROM TEST T
WHERE :"SYS_B_1"=:"SYS_B_2" AND CREATED_TIME >= :4 AND CREATED_TIME <= :5
 group by T.USER_ID,T.USER_NAME ORDER BY COUNT desc ) t1
WHERE rownum <= :6 ) t2
WHERE rn >= :7



然后看一下SQL的执行计划,发现该SQL进行了全表扫描。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值