ient
63 sorts (memory)
0 sorts (disk)
1 rows processed
10046 trace的结果,可以一眼看出是递归出了问题,按照业务上来说一个节点下面没有多少数据啊,怎么会不走索引呢?
Rows Row Source Operation
------- ---------------------------------------------------
1 VIEW (cr=209038 pr=0 pw=0 time=5665797 us)
1 COUNT STOPKEY (cr=209038 pr=0 pw=0 time=5665774 us)
1 VIEW (cr=209038 pr=0 pw=0 time=5665768 us)
1 SORT ORDER BY STOPKEY (cr=209038 pr=0 pw=0 time=5665745 us)
1 VIEW (cr=209038 pr=0 pw=0 time=5665649 us)
1 UNION-ALL (cr=209038 pr=0 pw=0 time=5665631 us)
0 HASH UNIQUE (cr=25205 pr=0 pw=0 time=570538 us)
0 HASH JOIN (cr=25205 pr=0 pw=0 time=570360 us)
0 TABLE ACCESS BY INDEX ROWID GG_TECH_OBJECT_NODE (cr=25205 pr=0 pw=0 time=570095 us)
1 NESTED LOOPS (cr=25205 pr=0 pw=0 time=570075 us)
0 NESTED LOOPS SEMI (cr=25205 pr=0 pw=0 time=570069 us)
0 NESTED LOOPS (cr=25205 pr=0 pw=0 time=570066 us)
0 HASH JOIN (cr=25205 pr=0 pw=0 time=570062 us)
0 HASH JOIN (cr=25205 pr=0 pw=0 time=569617 us)
1 TABLE ACCESS FULL GG_CLASSIFY_CARD (cr=68 pr=0 pw=0 time=1467 us)
21206 TABLE ACCESS FULL GG_DEVICE (cr=25137 pr=0 pw=0 time=424214 us)
0 TABLE ACCESS FULL GG_FL_DEVICE (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS BY INDEX ROWID GG_FUNCTION_LOCATION (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN PK_GG_FUNCTION_LOCATION (cr=0 pr=0 pw=0 time=0 us)(object id 508068)
0 INDEX RANGE SCAN IDX_TECH_NODE_ID (cr=0 pr=0 pw=0 time=0 us)(object id 541613)
0 INDEX RANGE SCAN IDX_TECH_OBJECT_ID (cr=0 pr=0 pw=0 time=0 us)(object id 508645)
0 VIEW (cr=0 pr=0 pw=0 time=0 us)
0 FILTER (cr=0 pr=0 pw=0 time=0 us)
0 CONNECT BY WITH FILTERING (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS BY INDEX ROWID GG_TECH_OBJECT_NODE (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN IDX_TECH_OBJECT_ID (cr=0 pr=0 pw=0 time=0 us)(object id 508645)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us)
0 CONNECT BY PUMP (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS FULL GG_TECH_OBJECT_NODE (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS FULL GG_TECH_OBJECT_NODE (cr=0 pr=0 pw=0 time=0 us)
1 HASH UNIQUE (cr=183833 pr=0 pw=0 time=5095035 us)
1 HASH JOIN (cr=183748 pr=0 pw=0 time=5090111 us)
170 TABLE ACCESS BY INDEX ROWID GG_TECH_OBJECT_NODE (cr=15772 pr=0 pw=0 time=7653 us)
341 NESTED LOOPS (cr=15610 pr=0 pw=0 time=189743 us)
170 NESTED LOOPS SEMI (cr=15268 pr=0 pw=0 time=5170 us)
170 HASH JOIN (cr=14926 pr=0 pw=0 time=3232 us)
1 TABLE ACCESS FULL GG_CLASSIFY_CARD (cr=68 pr=0 pw=0 time=830 us)
2867 TABLE ACCESS BY INDEX ROWID GG_DEVICE (cr=14858 pr=0 pw=0 time=28976 us)
4728 NESTED LOOPS (cr=13282 pr=0 pw=0 time=94565 us)
1667 TABLE ACCESS FULL GG_FUNCTION_LOCATION (cr=9937 pr=0 pw=0 time=13539 us)
3060 INDEX RANGE SCAN IDX_FLOCID (cr=3345 pr=0 pw=0 time=12458 us)(object id 507929)
170 INDEX RANGE SCAN IDX_TECH_NODE_ID (cr=342 pr=0 pw=0 time=3171 us)(object id 541613)
170 INDEX RANGE SCAN IDX_TECH_OBJECT_ID (cr=342 pr=0 pw=0 time=1854 us)(object id 508645)
31 VIEW (cr=167976 pr=0 pw=0 time=4864861 us)
31 FILTER (cr=167976 pr=0 pw=0 time=4864794 us)
56 CONNECT BY WITH FILTERING (cr=167976 pr=0 pw=0 time=4865653 us)
1 TABLE ACCESS BY INDEX ROWID GG_TECH_OBJECT_NODE (cr=4 pr=0 pw=0 time=58 us)
1 INDEX RANGE SCAN IDX_TECH_OBJECT_ID (cr=3 pr=0 pw=0 time=25 us)(object id 508645)
55 HASH JOIN (cr=167972 pr=0 pw=0 time=1264029 us)
56 CONNECT BY PUMP (cr=0 pr=0 pw=0 time=56 us)
7048956 TABLE ACCESS FULL GG_TECH_OBJECT_NODE (cr=167972 pr=0 pw=0 time=488 us)
0 TABLE ACCESS FULL GG_TECH_OBJECT_NODE (cr=0 pr=0 pw=0 time=0 us)
在无意中测试发现,去掉分页的语句之后,就非常快了,揣测是COUNT STOPKEY造成的,如果数据量大的做分页,肯定是可以提升性能的,但此条SQL语句只是返回