有用时弹出不用时隐藏的嵌入式垃圾桶吗

(分钟前 更新) 528 5836

最新回答

单独查询很快,为什么联合查询就慢了呢?原因在于:

单独执行远程查询
本地与远程混合查询
直接执行视图,并将OBJECT_ID11谓词推入到视图中,走索引,最后只将32行结果返回给本地 从计划中可以看到,本地查询与远程查询做HASH JOIN,但是访问远程的SQL是没有谓词的,这样必然全表从远程拉到本地,因为行数较多,所以慢

因此,优化此混合查询的语句可以由多种办法(比如本地查询的数量较少,可以采用上面的方法,本地与远程查询拆分为2条语句),另外就是可以使用driving_site hint,将主计划推到远程库去执行,本地的结果集少,推到远程,远程视图走索引,效率高。如下:

--耗时已用时间: 00: 00: 00.08
SQL> SELECT/*+driving_site(v_remote.a)*/ * FROM v_remote WHERE object_id IN (
2 SELECT c.object_id FROM c WHERE c.object_name IN (SELECT d.object_name FROM d WHERE d.object_id11
3 );
已选择32行。
已用时间: 00: 00: 00.08
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Inst |IN-OUT|
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT REMOTE | | 15 | 1425 | 109 | | |
| 1 | NESTED LOOPS | | 15 | 1425 | 109 | | |
| 2 | SORT UNIQUE | | | | | | |
| 3 | VIEW | VW_NSO_1 | 3 | 39 | 8 | MZT~ | |
| 4 | REMOTE | | | | | ! | R->S |
| 5 | VIEW | | 5 | 410 | 33 | | |
| 6 | UNION-ALL PARTITION | | | | | | |
| 7 | TABLE ACCESS BY INDEX ROWID| A | 32 | 960 | 35 |MZT~ | |
|* 8 | INDEX RANGE SCAN | IDX_A | 32 | | 3 |MZT~ | |
| 9 | TABLE ACCESS BY INDEX ROWID| B | 1 | 32 | 2 | MZT~ | |
|* 10 | INDEX RANGE SCAN | IDX_B | 1 | | 1 | MZT~ | |
---------------------------------------------------------------------------------------
彼岸之澄 2024-05-19

扩展回答

热门问答

装修专题

首页 >  有用时弹出不用时隐藏的嵌入式垃圾桶吗

其他人还看了

页面运行时间: 0.032344102859497 秒