为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM6
【操作系统】:
【CPU】:
【问题描述】*:
同样的sql,我在管理工具运行 连接我本机dm6执行时间大概110ms, 连接局域网服务器上的dm6执行时间大概330ms 请问这可能是什么原因造成的?
本机的数据库是从服务器迁移的
本机执行计划
#RSET:[1370, 1370, 61920];
#XEVL:[0, 0, 0];
#HAGR:[0, 0, 0]; group_by_num(1), function_num(1)
#SAGR:[0, 0, 0]; group_by_num(1), function_num(1) (Part Virtual)
#XSORT:[0, 0, 0]; keys_num(1), is_distinct(FALSE) (Virtual)
#CSEK:[1370, 1370, 0]; INDEX33556200(T_BASE_DATA_PLAN5), FULL_SCAN
服务器执行计划
#RSET:[175, 175, 1114];
#XEVL:[0, 0, 0];
#HAGR:[0, 0, 0]; group_by_num(1), function_num(1)
#SAGR:[0, 0, 0]; group_by_num(1), function_num(1) (Part Virtual)
#XSORT:[0, 0, 0]; keys_num(1), is_distinct(FALSE) (Virtual)
#CSEK(SECOND):[175, 175, 0]; INDEX33556068(T_BASE_DATA_PLAN5), INDEX_G_WITH_L_SEARCH
可以先收集一下 统计信息
dbms_stats.gather_table_stats('模式','表名',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
再对比一下 执行计划
DM6的执行计划吧。
叶节点操作符csek走的索引不一样,仔细对比一下索引INDEX33556200和INDEX33556068,建议收集一下统计信息.
第一个是:全表(聚集索引)扫描
第二个是:二级索引范围扫描,存在回表情况(是性能瓶颈)