create table as select性能测试

转载自:http://blog.csdn.net/yangzhijun_cau/article/details/7396088

---------------------------------------------------------------------------------

原表270W数据,无照片,字段比较多,有50个左右

测试机是一个虚拟机,4CPU,内存空闲2G,windows2003,

oracle9.2.0.6 sga 1g,pga 1g

先测试非归档模式下

1. 150秒
采用create table as select结构

create table lr_jbxx_test1 as 
select * from lr_jbxx

归档模式下,耗时166秒

2.99秒
在测试1基础上增加nologging项
create table lr_jbxx_test2
nologging
 as 
select * from lr_jbxx

3.61秒
在测试2基础上增加parallel项
create table lr_jbxx_test3
nologging
parallel (degree 4) 
 as 
select * from lr_jbxx

无nologging,增加并行51秒

 create table lr_jbxx_test7
parallel (degree 4) 
 as 
select * from lr_jbxx

归档模式下,有nologging和parallel,耗时54秒

 

4.62秒
在测试3基础上,将旧表插入分区表
性能与测试3相当
create table LR_JBXX_test4
partition by range (PCS_DM_LRDWSZD)
(
  partition F1 values less than ('410200000000')
    tablespace LDRK_DATA_TS1
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F2 values less than ('410300000000')
    tablespace LDRK_DATA_TS2
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F3 values less than ('410400000000')
    tablespace LDRK_DATA_TS3
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F4 values less than (MAXVALUE)
    tablespace LDRK_DATA_TS4
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    )
)
nologging
parallel (degree 4) 
 as 
select * from lr_jbxx

5.203秒
create table与insert into 分开做,先测试insert into无索引的情况
第一步:创建表结构
create table LR_JBXX_test5
(
  LRRYID         NUMBER(12) not null,
  SFZH           VARCHAR2(18),
  XM             VARCHAR2(90),
  XB             VARCHAR2(8),
  CYM            VARCHAR2(90),
  CSRQ           DATE,
  MZ             VARCHAR2(4),
  SG             NUMBER(6,2),
  CZHKDZ         VARCHAR2(300),
  PCS_DM_HJ      VARCHAR2(12),
  HKSZDLX_DM     VARCHAR2(2),
  WHCD_DM        VARCHAR2(4),
  HYZK_DM        VARCHAR2(4),
  ZY_DM          VARCHAR2(30),
  CZFWID         NUMBER(10),
  FZXM           VARCHAR2(200),
  YFZGX          VARCHAR2(300),
  LRYY_DM        VARCHAR2(10),
  JZDZ           VARCHAR2(300),
  PCS_DM_JZD     VARCHAR2(12),
  JZRQ           DATE,
  JZSY           VARCHAR2(300),
  JZCS_DM        VARCHAR2(10),
  XCSZY          VARCHAR2(30),
  XFWCS          VARCHAR2(300),
  JZZQFRQ        DATE,
  YXQX           NUMBER(4),
  ZRR            VARCHAR2(300),
  HKLB_DM        VARCHAR2(2),
  JZZBH          VARCHAR2(20),
  BZ             VARCHAR2(3000),
  TBR            VARCHAR2(30),
  TBDW           VARCHAR2(14),
  TBRQ           DATE,
  SJLY_DM        VARCHAR2(2),
  DRBZ           CHAR(1),
  BDYJBZ         VARCHAR2(20),
  BDYJSJ         DATE,
  HJID           NUMBER(12),
  XMPY           VARCHAR2(300),
  XZQH_HJ        VARCHAR2(60),
  XZQH_JZD       VARCHAR2(60),
  PCS_MC_HJ      VARCHAR2(600),
  PCS_MC_JZD     VARCHAR2(600),
  DYCS           NUMBER(4),
  DYSJ           DATE,
  TBDWMC         VARCHAR2(300),
  GAJGXZ         VARCHAR2(10),
  PCS_DM_LRDWSZD VARCHAR2(12),
  XGDW           VARCHAR2(20),
  XGSJ           DATE,
  BGDW           VARCHAR2(20),
  BGSJ           DATE,
  ZZMM           VARCHAR2(200),
  XGY            VARCHAR2(200)
)
partition by range (PCS_DM_LRDWSZD)
(
  partition F1 values less than ('410200000000')
    tablespace LDRK_DATA_TS1
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F2 values less than ('410300000000')
    tablespace LDRK_DATA_TS2
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F3 values less than ('410400000000')
    tablespace LDRK_DATA_TS3
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    ),
  partition F4 values less than (MAXVALUE)
    tablespace LDRK_DATA_TS4
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 64K
      minextents 1
      maxextents unlimited
    )
);
第二步:insert
insert into LR_JBXX_test5  
select * from lr_jbxx

6 2103 
在测试5的基础上,测试索引对批量插入的影响
是没有索引的10倍
alter table LR_JBXX_test6
  add constraint PK_LR_JBXX_FQ1 primary key (LRRYID)
  using index 
  tablespace LDRK_IDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
alter table LR_JBXX_test6
  add constraint YS_JZZBH1 unique (JZZBH)
  using index 
  tablespace LDRK_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
alter table LR_JBXX_test6
  add constraint YS_SFZH1 unique (SFZH, XM)
  using index 
  tablespace LDRK_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate indexes 
create index IDX_CZFWID1 on LR_JBXX_test6 (CZFWID)
  tablespace LDRK_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create index IDX_LR_JBXX_JZDPCS_FQ1 on LR_JBXX_test6 (PCS_DM_JZD);
create index IDX_LR_JBXX_LRDWSZD_FQ1 on LR_JBXX_test6 (PCS_DM_LRDWSZD);
create index IDX_LR_JBXX_SFZH_FQ1 on LR_JBXX_test6 (SFZH)
  tablespace LDRK_IDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create index IDX_LR_JBXX_TBDW_FQ1 on LR_JBXX_test6 (TBDW)
  tablespace LDRK_IDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create index IDX_LR_JBXX_XGDW1 on LR_JBXX_test6 (XGDW)
  tablespace LDRK_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create index IDX_LR_JBXX_ZRR1 on LR_JBXX_test6 (ZRR)
  tablespace LDRK_IDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

7.197秒

使用insert into /*+ append */结构

insert into /*+ append */ LR_JBXX_test7  
select * from lr_jbxx

归档模式下,255秒

8.188秒

与测试7比较,不使用hits

性能反倒更好。

在归档模式下,耗时267秒,开销增加约30%

结论:

1.create table as select结构远比先create table再insert into性能好的多,该测试性能差3倍;

2.使用nologging,性能提高一半,使用parallel性能提高一倍多;

3.索引对insert的性能影响极大,10倍以上;

4.不管是否归档,使用/*+ append */结构,对insert into都没有性能提升,现在还不清楚为什么。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类似索引Model套Model之 iOS模型闲聊二

看下界面, 这是类似于索引的页面, 只不过木有右侧索引条的布局. 如果想了解通讯录索引的,请移步iOS - 高仿通讯录之商品索引排序搜索. 提供思路如下: 分析界面及接口用 MVC 设计模式来实现(其实核心点都在下面5)创建内外层 Model 并绑定两者 Model两者 Cell 布局的实现 (便于后…

输入法画面_搜狗输入法:用AI技术谱写诗意生活

十九世纪著名的思想家斯宾塞曾说:科学本身就富有诗意。这里应该包含两种意思,字面上,科学是饱含文字之美的,比如原理和规律的推演,仅通过文字符号的简单排列,便有了生机。但深层次上科学又不止于文字&#…

hadoop伪分布式(单机版)安装,Linux

一、下载 1、hadoop官网下载:https://archive.apache.org/dist/hadoop/common/ 进入stable文件夹里下载,这是稳定版本。 stable/ 本文的版本是 hadoop-2.7.2.tar.gz 2、jdk下载,JDK7及以上,本文用jdk8-64位 二、版本区别 2.…

c++-add two numbers 两个链表相加

题目描述 You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5 -> 6…

城轨的两类时钟系统均同步于_基于两台SDS3000示波器同步产生“8通道”示波器...

在很多应用场合需要4通道以上的示波器,但是市面上极大部分示波器最多只有四通道,而且没有外部输入的同步时钟接口。 有什么快捷的方法获得更多通道功能的示波器? 最简便的方法是:将两台示波器的辅助输入信号作为触发源,同时连接到…

Linux设置ssh免密码登录

一、SSH来源 对于需要远程管理其它机器,一般使用远程桌面或者telnet。linux一般只能是telnet。但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。 为解决这个问题,推出了通信加密通信协议,即SSH&#x…

解析json数据_Retrofit同时解析JSON和XML数据格式

前言Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的。我们可以通过自己编写Retrofit的ConverterFactory来做到可以同时解析两种…

ORACLE 小时值必须介于1和12之间 解决方法

ORACLE数据库查询语句: "select * from dual where time>to_date(2012-10-29 19:45:34,yyyy-mm-dd HH:mi:ss)"当执行时,会抛出错误:ORA-01849: 小时值必须介于 1 和 12 之间 01849. 00000 - "hour must be between 1 and 1…

jenkins+svn+maven+ssh 部署配置详细记录

2019独角兽企业重金招聘Python工程师标准>>> 先简单记录一下,后面再慢慢完善。 1、环境 jdk 1.7.0_45 maven 3.1.1 jenkins 2.3.21 jdk和maven的安装就不必多说了,主要是jenkins的安装需要说下,jenkins有war包和yum还有rpm等安装方…

k8s安装sqlite3_kubernetes环境部署单节点redis数据库的方法

kubernetes部署redis数据库(单节点)redis简介Redis 是我们常用的非关系型数据库,在项目开发、测试、部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Redis 数据库&#xff0…

oracle 都是parallel惹的祸【1-2分钟出结果变1-2秒】

原文:http://blog.csdn.net/shushugood/article/details/9000628 -------------------------------------------------------- 该项目是中国联通xxxx话务系统,我的架构设计需求设计,运维保障数据库开发,全套服务。 在今天开发完毕…

二叉搜索树(BST树)的简单实现

#include <stdlib.h>template<typename T>class CBinSTree;template <typename T>class CTreeNode{//树节点类public:CTreeNode(const T& item,CTreeNode<T>* lptr NULL,CTreeNode<T>* rptr NULL):data(item),left(lptr),right(rptr){}CTr…

Oracle 创建 DBLink 的方法

原文出处&#xff1a;http://blog.csdn.net/davidhsing/article/details/6408770 ------------------- 1、如果需要创建全局 DBLink&#xff0c;则需要先确定用户有创建 dblink 的权限&#xff1a; [c-sharp] view plaincopy print?select * from user_sys_privs where privi…

eclipse init 配置

--设置最大的堆和最小堆大小.两者一样表示固定大小.这样可以防止老年代内存扩展造成额外的gc.当然也会多占一些内存.系统内存不足的慎用 -Xms512m -Xmx512m --加大年轻代内存.减少minor gc -Xmn164m --这个是永久代大小.默认是64M,增加到96M.固定大小,减少扩展造成的gc -XX:Per…

Oracle对表空间操作的sql

管理员给用户增加不限制表空间权限 grant unlimited tablespace to 用户; 查看表空间使用情况 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (…

IPKISS Tutorials------线路仿真

IPKISS------线路仿真 推荐阅读引言正文示例1------PDK中集成好的器件示例2------使用 i3.Circuit 框架示例3------i3.PCell 框架推荐阅读 Matplotlib ------ 纵坐标科学计数法含义 引言 我们知道,想要在 IPKISS 中进行仿真,首先需要对线路进行定义,但是我们知道,在 IPK…

Oracle Database 11g Express Edition使用限制,与其他版本的区别

Oracle Database 11g Express Edition是 Oracle 数据库的免费版本&#xff0c;支持标准版的大部分功能&#xff0c;11g Express Edition 提供 Windows 和 Linux 版本。 做为免费的 Oracle 数据库版本&#xff0c;Express Edition的限制是&#xff1a; 1&#xff09;最大数据库大…

c++ 复制构造函数_C++学习刷题8--复制构造函数和赋值运算符重载函数

一、前言本部分为C语言刷题系列中的第8节&#xff0c;主要讲解这几个知识点&#xff1a;复制构造函数和赋值运算符重载函数。欢迎大家提出意见、指出错误或提供更好的题目&#xff01;二、知识点讲解知识点1&#xff1a;复制构造函数1、当依据一个已存对象创建一个新对象时&…

ORACLE使用WITH AS和HINT MATERIALIZE优化SQL解决FILTER效率低下

原文&#xff1a;http://blog.csdn.net/liangweiwei130/article/details/37882503 ------------------------------------------------- 在做项目的过程中&#xff0c;一个页面使用类似如下的SQL查询数据&#xff0c;为了保密和使用方便&#xff0c;我把项目中有关的表名和字段…

面试题333

2019独角兽企业重金招聘Python工程师标准>>> 面试题333 博客分类&#xff1a; java 1、spring的缓存,mybatis缓存2、介绍下dubbo。A服务调用B服务&#xff0c;B服务又调用C服务,这种情况怎么办3、JVM监控工具有哪些&#xff0c;区别又是什么&#xff08;如能追上各个…