为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8
【操作系统】:linux
【CPU】:
【问题描述】*:
下面SQL, name字段上有索引, id是主键, 为什么需要BLKUP 这个步骤?
优化器是不是可以改进一下算法?
select count(id) from t where name='XXX';
1 #NSET2: [1, 1->1, 78]
2 #PRJT2: [1, 1->1, 78]; exp_num(1), is_atom(FALSE)
3 #AAGR2: [1, 1->1, 78]; grp_num(0), sfun_num(1), distinct_flag[0]; slave_empty(0)
4 #BLKUP2: [1, 1->0, 78]; IDX_T_NAME(T)
5 #SSEK2: [1, 1->0, 78]; scan_type(ASC), IDX_T_NAME(T), is_global(0), scan_range['XXX','XXX']
你可以查询下这个参数:
select * from v$dm_ini where para_name like '%PK_WITH_CLUSTER%';
如果你的参数值是0,那么你当前的表现就是正常的
你可以尝试将值设置成1,在看看,这时候主键索引同时作为聚簇索引,就不会再回表了。
sp_set_para_value(1,'PK_WITH_CLUSTER',1);
注意,参数修改后,新建表生效。
ID是主键,所以不用考虑空值空值。测试下直接COUNT(1)看看是不是就不回表了