--制造数据不做垂直切分 create table test( a number, b varchar2(4000), c varchar2(4000), d varchar2(4000), e varchar2(4000), f varchar2(4000), g varchar2(4000), h varchar2(4000) ); INSERT INTO test SELECT ROWNUM, rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1), rpad(‘*‘, 4000, 1) FROM DUAL CONNECT BY ROWNUM <= 100000; commit; create table test1 as select * from test;
--制造数据做垂直切分 create table test_cuizhi( a number ); INSERT INTO test_cuizhi SELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= 100000; commit; create table test_cuizhi1 as select * from test_cuizhi;
--開始測试,仅仅是取两个最小的字段 SQL> set timing on SQL> set autotrace traceonly SQL> select t.a,t1.a from test t, test1 t1 where t.a=t1.a; 已选择100000行。 已用时间: 00: 00: 53.17 运行计划 ---------------------------------------------------------- Plan hash value: 2400077556 ---------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 44504 | 1129K| 173K (1)| 00:34:38 | |* 1 | HASH JOIN | | 44504 | 1129K| 173K (1)| 00:34:38 | | 2 | TABLE ACCESS FULL| TEST | 44504 | 564K| 87801 (1)| 00:17:34 | | 3 | TABLE ACCESS FULL| TEST1 | 117K| 1490K| 85344 (1)| 00:17:05 | ---------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("T"."A"="T1"."A") Note ----- - dynamic sampling used for this statement 统计信息 ---------------------------------------------------------- 52 recursive calls 0 db block gets 795627 consistent gets 534917 physical reads 0 redo size 1664840 bytes sent via SQL*Net to client 73664 bytes received via SQL*Net from client 6668 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 100000 rows processed SQL> / 已选择100000行。 已用时间: 00: 00: 33.36 运行计划 ---------------------------------------------------------- Plan hash value: 2400077556 ---------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 44504 | 1129K| 173K (1)| 00:34:38 | |* 1 | HASH JOIN | | 44504 | 1129K| 173K (1)| 00:34:38 | | 2 | TABLE ACCESS FULL| TEST | 44504 | 564K| 87801 (1)| 00:17:34 | | 3 | TABLE ACCESS FULL| TEST1 | 117K| 1490K| 85344 (1)| 00:17:05 | ---------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("T"."A"="T1"."A") Note ----- - dynamic sampling used for this statement 统计信息 ---------------------------------------------------------- 0 recursive calls 0 db block gets 795446 consistent gets 552087 physical reads 0 redo size 1664840 bytes sent via SQL*Net to client 73664 bytes received via SQL*Net from client 6668 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 100000 rows processed