问题细节,今天早上突然数据查询很慢,进过查询问题锁定,发现是之前执行索引的语句现在不执行索引了,经过测试锁定在这个表的一个字段上,单独运行这个字段进行查询时还是执行索引的如下图
但是添加其他条件后就不执行索引而是进行全表查询
表中索引建立情况为:
我添加过一次表空间:
在线等答案,求大神们帮组
我的理解是,优化器认为第二个查询全表扫描的成本更低。
第一个查询走索引是因为你的结果集中其实只有be.starttime的字段, 当这个字段上有一个单独的索引时,肯定直接完全走此索引得到结果集即可。
第二个查询当你加上backdata时,优化器发现假如走starttime的索引后仍然需要根据rid串回data进行查询, 它认为这样的成本更高。
所以出现了加where条件不走索引的情况。 其实是和你的结果集有关系。
统计信息
中间不是修改过查询条件么?
貌似统计更新一把
问题已经解决。
关于TWT使用指南社区专家合作厂商入驻社区企业招聘投诉建议版权与免责声明联系我们 © 2024talkwithtrend — talk with trend,talk with technologist京ICP备09031017号-30