温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle with as (hint inline materialize)

发布时间:2020-08-04 18:07:24 来源:网络 阅读:450 作者:llc018198 栏目:关系型数据库
  1. 测试数据:

SQL> create table test1 as  select * from dba_objects; Table created. SQL> create table test2 as  select * from user_objects; Table created. SQL> create table test3 as  select * from dba_objects; Table created.

收集统计信息:

BEGIN   DBMS_STATS.GATHER_TABLE_STATS(ownname          => 'SCOTT',                                 tabname          => 'TEST1',                                 estimate_percent => 100,                                 method_opt       => 'for  columns owner size repeat',                                 no_invalidate    => FALSE,                                 degree           => 4,                                 granularity      => 'ALL',                                 cascade          => TRUE);   END;    / PL/SQL procedure successfully completed. SQL> with t as(select t1.* from test1 t1,test2 t2 where t1.object_id=t2.object_id) select * from t,test3 t3 where t.object_id=t3.object_id; 11 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2878150729 ------------------------------------------------------------------------------------- | Id  | Operation	    | Name  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | ------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT    |	    | 86999 |	 16M|	    |  1605   (1)| 00:00:20 | |*  1 |  HASH JOIN	    |	    | 86999 |	 16M|	    |  1605   (1)| 00:00:20 | |   2 |   TABLE ACCESS FULL | TEST2 |	 13 |	 65 |	    |	  3   (0)| 00:00:01 | |*  3 |   HASH JOIN	    |	    | 86999 |	 16M|  9352K|  1602   (1)| 00:00:20 | |   4 |    TABLE ACCESS FULL| TEST1 | 86997 |  8325K|	    |	347   (1)| 00:00:05 | |   5 |    TABLE ACCESS FULL| TEST3 | 86999 |  8326K|	    |	347   (1)| 00:00:05 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    1 - access("T1"."OBJECT_ID"="T2"."OBJECT_ID")    3 - access("T1"."OBJECT_ID"="T3"."OBJECT_ID") Statistics ----------------------------------------------------------	  0  recursive calls	  0  db block gets        2491  consistent gets        2484  physical reads	  0  redo size        3736  bytes sent via SQL*Net to client	523  bytes received via SQL*Net from client	  2  SQL*Net roundtrips to/from client	  0  sorts (memory)	  0  sorts (disk)	 11  rows processed	  加 materialize hint,强制oracle生成临时表 SQL> with t as(select /*+ materialize */t1.* from test1 t1,test2 t2 where t1.object_id=t2.object_id) select * from t,test3 t3 where t.object_id=t3.object_id; 11 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 3288461629 ---------------------------------------------------------------------------------------------------------------- | Id  | Operation	   | Name	       | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | ---------------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT	   |	       |   582M|   165G|       |  3963	(40)| 00:00:48 | |   1 |  TEMP TABLE TRANSFORMATION |	       |       |       |       |	    |	       | |   2 |   LOAD AS SELECT	   | SYS_TEMP_0FD9D661A_155646 |       |       |       |	    |	       | |*  3 |    HASH JOIN	   |	       | 86997 |  8750K|       |   351	 (1)| 00:00:05 | |   4 |     TABLE ACCESS FULL	   | TEST2	       |    13 |    65 |       |     3	 (0)| 00:00:01 | |   5 |     TABLE ACCESS FULL	   | TEST1	       | 86997 |  8325K|       |   347	 (1)| 00:00:05 | |*  6 |   HASH JOIN	   |	       |   582M|   165G|  9352K|  3613	(44)| 00:00:44 | |   7 |    TABLE ACCESS FULL	   | TEST3	       | 86999 |  8326K|       |   347	 (1)| 00:00:05 | |   8 |    VIEW 	   |	       | 86997 |    17M|       |   332	 (1)| 00:00:04 | |   9 |     TABLE ACCESS FULL	   | SYS_TEMP_0FD9D661A_155646 | 86997 |  8750K|       |   332	 (1)| 00:00:04 | ---------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("T1"."OBJECT_ID"="T2"."OBJECT_ID")    6 - access("T"."OBJECT_ID"="T3"."OBJECT_ID") Statistics ----------------------------------------------------------	 55  recursive calls	  8  db block gets        2525  consistent gets        2485  physical reads	656  redo size        3736  bytes sent via SQL*Net to client	523  bytes received via SQL*Net from client	  2  SQL*Net roundtrips to/from client	  3  sorts (memory)	  0  sorts (disk)	 11  rows processed
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI