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.pswp.cn/news/539750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539750.shtml
英文地址,請注明出處:http://en.pswp.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;如能追上各個…