weixin_40571118 2019-09-18 11:18 采纳率: 0%
浏览 767
已结题

联表查询已创建的索引却用不了。

求大神解决一下这个有关索引使用的问题:

select tric.reg_info_id,
       wmsys.wm_concat((select t.name
                         from T_COMM_CODE t
                        where t.pid = tpcc.REG_TRADE_TYPE_NUM)) as zczy
  from T_PERSON_CERTIFICATE tpcc, T_REG_INFO_CERT tric
 where tpcc.id = tric.cert_id
   and tpcc.type_code = '402880482672d83e012673e744ff0113'
   and tric.state = '1'
   and tric.examine_flag = '1'
 group by tric.reg_info_id

tpcc.id、tric.cert_id、tpcc.type_code、tric.state、tric.examine_flag这些字段我都已经加上了索引,但是通过执行计划查看T_PERSON_CERTIFICATE和T_REG_INFO_CERT两个表的索引都没有用上图片说明

在只查询T_REG_INFO_CERT表的时候发现当使用state = '1'和tric.examine_flag = '1'作为查询条件的时候也用不上索引

select tric.reg_info_id
from  T_REG_INFO_CERT tric
where tric.state = '1' and tric.examine_flag = '1'

图片说明

但是如果tric.examine_flag = '0',又莫名其妙的用上了索引,“1”和“0”数据量几乎是一样大的

select tric.reg_info_id
from  T_REG_INFO_CERT tric
where tric.state = '1' and tric.examine_flag = '0'

图片说明

求救

  • 写回答

3条回答

  • oracle_awen 2019-09-18 15:07
    关注

    有可能是统计信息不对,试试重新收集统计信息。可以使用如下脚本查看下表和索引的统计信息,已经选择率
    table_stat

    评论

报告相同问题?

悬赏问题

  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法