为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:centos7
【CPU】:x86
【问题描述】*:形如一下
select * from(
select * from A inner join B on A.id=B.id and A.state=1
) T
inner join C on T.pid=C.pid
inner join D on D.cid=C.cid
其中C表在pid上存在索引,D表在cid上存在索引。
通过以上SQL进行查询的时候,发现C和D走的都是全表扫描,除非在SQL中指定Hint,否则就会进行全表扫描。这是什么原因呢?
您好 在SQL中指定Hint能走到预期的机会,而优化器评估走全表扫描。可能是统计信息不准确或者走索引后代价比走全表扫描代价更高 可以往这方面排查下 谢谢