为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:统信服务器版v20 1050e
【CPU】:32核 内存64G ARM架构
【问题描述】*:
Select ht.ywbh
from st.ht ht
inner join st.fw fw on ht.ywbh = fw.ywbh
表ht与表fw分别有1200万的数据,ht表中ywbh为主键,fw表中ywbh建有B树索引,在不加任务条件的情况下,查询需要48秒显示出数据,但是oracle中只要16秒显示出数据,oracle中索引与达梦中一致。达梦数据为oracle迁移过去的,迁移后重建了达梦的索引。请问怎样才能提升达梦的查询效率。
只从帖子里信息看,可以先在ht表和fw表分别创建ywbh的索引,然后进行ht和fw表的统计信息刷新,尽量让sql查询走到hash join的执行计划,应该会有数倍提升效果。
具体实际分析话,提供下两张表的表结构sql附件,再结合执行计划实际分析,这类语句是有优化空间的。