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 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办