为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8 --03134283904-20220630-163817-20005
【操作系统】:中标麒麟V7U6
【CPU】: 12核
【问题描述】*:两个表关联查询,一个表数据量是20万,另外一个表是60万,然后将关联的字段都加上索引,分页查询首次需要4到6秒,查询第二页第三页的时候只需要不到1秒了,这个是什么原因呢?<查询语句和执行计划.txt
看看et,应该是排序耗时,把排序消掉就行了
为什么会有这种逻辑?
instr(a.register_address, '230001')>0
这种处理可能还不如like 效率高。
这种字符串层面的遍历,最好从存储结构开始优化,否者怎么调优也不会太快。
查询第二页、第三页 估计是数据缓存。因为第一次执行完看上去只取前10,其实是要把所有数据排序完取的。
性能影响大的是 产生物化临时表。
看把OR条件变HEAP TABLE关闭,能快点不
按刚说的,看执行计划是否有改变,是否更快一些