ITPub博客

首页 > 数据库 > Oracle > [Oracle] Create table as 速度测试nologging+parallel

[Oracle] Create table as 速度测试nologging+parallel

原创 Oracle 作者:tolilong 时间:2016-10-21 22:01:32 1 删除 编辑
SQL> show user
USER 为 "BRUCE"

SQL> select count(*) from bruce;

  COUNT(*)
----------
  83324928


SQL> select segment_name,bytes/1024/1024/1024 from user_segments;

SEGMENT_NAME         BYTES/1024/1024/1024
-------------------- --------------------
BRUCE                               8.875


SQL> create table bruce1 as select * from bruce;

表已创建。

已用时间:  00: 07: 46.42


SQL> select segment_name,bytes/1024/1024/1024 from user_segments;

SEGMENT_NAME         BYTES/1024/1024/1024
-------------------- --------------------
BRUCE                               8.875
BRUCE1                             8.9375


SQL> create table bruce2 nologging as select * from bruce;

表已创建。

已用时间:  00: 02: 31.71


SQL> select segment_name,bytes/1024/1024/1024 from user_segments;

SEGMENT_NAME         BYTES/1024/1024/1024
-------------------- --------------------
BRUCE                               8.875
BRUCE1                             8.9375
BRUCE2                         8.88769531


SQL> create table bruce3 tablespace bruce nologging parallel 2
  2  as
  3  select * from bruce;

表已创建。

已用时间:  00: 00: 59.93


SQL> select segment_name,bytes/1024/1024/1024 from user_segments;

SEGMENT_NAME         BYTES/1024/1024/1024
-------------------- --------------------
BRUCE                               8.875
BRUCE1                             8.9375
BRUCE2                         8.88769531
BRUCE3                         8.88317871


SQL> create table bruce4 tablespace bruce nologging parallel 2
  2  as
  3  select /*+parallel(a 2)*/ * from bruce a;

表已创建。

已用时间:  00: 00: 59.32
SQL> select segment_name,bytes/1024/1024/1024 from user_segments;

SEGMENT_NAME         BYTES/1024/1024/1024
-------------------- --------------------
BRUCE                               8.875
BRUCE1                             8.9375
BRUCE2                         8.88769531
BRUCE3                         8.88317871
BRUCE4                         8.88317871


--------------------------------
普通insert           |   07: 46.42
nologging            |   02: 31.71
nologging + parallel |   00: 59.93
nologging + parallel(包括select)  |   00: 59.32

(1)对于将近9G的table,create table使用 nologging + parallel速度会有很大的提升,并且没有log产生(很少).
(2)在select中也加上parallel好像作用不大,可能是电脑的cpu核数不够,有机会找台server测试一下.
(3)执行完成之后,切记将 table的logging和degree属性改回来

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24237320/viewspace-2126898/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-13

  • 博文量
    406
  • 访问量
    1208664