注册

层次查询CONNECT BY很慢

JHSONN 2024/03/01 820 7 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:1-3-26-2023.07.13-195546-20046-SEC
【操作系统】:
【CPU】:
【问题描述】
select
lpad(region_temp.name , length(region_temp.name) + level * 3, '-') as name_,
CONNECT_BY_ROOT region_temp.short_code as top_region_code,
CONNECT_BY_ROOT region_temp.name as top_region_name,
region_temp.

from (select CODE,NAME,SHORT_CODE,PARENT_CODE, level as level_
from bsp.pub_region t
where t.status = '1'
start with code = '123123'
CONNECT by prior CODE = parent_code) region_temp
where region_temp.name != 'XXXX'
start with region_temp.level_ = '3'
CONNECT by prior CODE = parent_code;

执行计划如下:
1 #NSET2: [1, 1, 240]
2 #PRJT2: [1, 1, 240]; exp_num(8), is_atom(FALSE)
3 #TOPN2: [1, 1, 240]; top_num(1)
4 #SLCT2: [1, 1, 240]; DMTEMPVIEW_890155397.TMPCOL4 <> ' ֱ '
5 #PRJT2: [1, 1, 240]; exp_num(8), is_atom(FALSE)
6 #HIERARCHICAL QUERY: [1, 1, 240]; KEY_NUM(0);
7 #SLCT2: [1, 1, 240]; REGION_TEMP.LEVEL_ = var7
8 #PRJT2: [1, 1, 240]; exp_num(5), is_atom(FALSE)
9 #SLCT2: [1, 1, 240]; DMTEMPVIEW_890155392.TMPCOL2 = '1'
10 #PRJT2: [1, 9, 240]; exp_num(6), is_atom(FALSE)
11 #HIERARCHICAL QUERY: [1, 9, 240]; KEY_NUM(0);
12 #BLKUP2: [1, 1, 240]; INDEX33807789(T)
13 #SSEK2: [1, 1, 240]; scan_type(ASC), INDEX33807789(PUB_REGION as T), scan_range['123123','123123']
14 #SLCT2: [1, 9, 240]; T.PARENT_CODE = var1
15 #CSCN2: [1, 867, 240]; INDEX33807720(PUB_REGION as T)
16 #SLCT2: [1, 1, 240]; REGION_TEMP.PARENT_CODE = var3
17 #PRJT2: [1, 1, 240]; exp_num(5), is_atom(FALSE)
18 #SLCT2: [1, 1, 240]; DMTEMPVIEW_890155392.TMPCOL2 = '1'
19 #PRJT2: [1, 9, 240]; exp_num(6), is_atom(FALSE)
20 #HIERARCHICAL QUERY: [1, 9, 240]; KEY_NUM(0);
21 #BLKUP2: [1, 1, 240]; INDEX33807789(T)
22 #SSEK2: [1, 1, 240]; scan_type(ASC), INDEX33807789(PUB_REGION as T), scan_range['123123','123123']
23 #SLCT2: [1, 9, 240]; T.PARENT_CODE = var1
24 #CSCN2: [1, 867, 240]; INDEX33807720(PUB_REGION as T)

调整参数 CNNTB_OPT_FLAG ,对该语句没有效果
sp_set_para_value(1,‘CNNTB_OPT_FLAG’,1)

数据如下
imp_exp.dmp

回答 0
暂无回答
扫一扫
联系客服