oracle怎么分表 oracle怎么分庫分表

關(guān)于Oracle 分區(qū)實(shí)現(xiàn)和操作的幾個(gè)問題

1. 組合分區(qū)表的創(chuàng)建方式("范圍-哈稀"),見附1

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了濰坊免費(fèi)建站歡迎大家使用!

2. 樓主的需求,即"范圍-范圍分區(qū)",在ORACLE 9i, 10g經(jīng)過測試都是不能實(shí)現(xiàn)的

在附1的基礎(chǔ)上修改為"范圍-范圍"組合分區(qū),創(chuàng)建時(shí)報(bào)錯(cuò):ORA-14151:無效的表分區(qū)方法

3. 關(guān)于sxdtgsh兄的回答,我測了

3.1 沒有maxvalue上限分區(qū)設(shè)置,在插入超出分區(qū)的數(shù)據(jù)時(shí)會報(bào)錯(cuò)ORA-14400: 插入的分區(qū)關(guān)鍵字未映射到任何分區(qū)

3.2 按回答的語句創(chuàng)建分區(qū)表沒有問題,但數(shù)據(jù)無法按照樓主的需求分布

====附1

附錄:創(chuàng)建"范圍-哈稀"組合分區(qū)表

CREATE TABLE TAB11 (ID NUMBER,DT DATE)

PARTITION BY RANGE (DT)

SUBPARTITION BY HASH (ID) SUBPARTITIONS 2 -- 自分區(qū)個(gè)數(shù),可以不寫,由系統(tǒng)判斷

(

PARTITION Y2012 VALUES LESS THAN (TO_DATE('2013-01-01','YYYY-MM-DD'))

(

SUBPARTITION Y2012_H1

,SUBPARTITION Y2012_H2

)

,PARTITION Y2013 VALUES LESS THAN (TO_DATE('2014-01-01','YYYY-MM-DD'))

(

SUBPARTITION Y2013_H1

,SUBPARTITION Y2013_H2

)

,PARTITION YMAX VALUES LESS THAN (MAXVALUE)

(

SUBPARTITION YMAX_H1

,SUBPARTITION YMAX_H2

)

)

====附2,請樓主檢查最后查詢的數(shù)據(jù)分布

create table T_TEST

(

ID NUMBER(20) NOT NULL,

TIME DATE NOT NULL

)

partition by range(TIME, ID) -- 按時(shí)間、ID范圍分區(qū) 這個(gè)例子是按年的

(

partition P_2012_10 values less than (to_date('2013-01-01','yyyy-MM-dd'), 10),

partition P_2012_20 values less than (to_date('2013-01-01','yyyy-MM-dd'), 20),

partition P_2012_MAX values less than (to_date('2013-01-01','yyyy-MM-dd'), MAXVALUE),

partition P_2013_10 values less than (to_date('2014-01-01','yyyy-MM-dd'), 10),

partition P_2013_20 values less than (to_date('2014-01-01','yyyy-MM-dd'), 20),

partition P_2013_MAX values less than (to_date('2014-01-01','yyyy-MM-dd'), MAXVALUE),

partition P_MAX values less than (MAXVALUE,MAXVALUE)

);

INSERT INTO T_TEST VALUES (1,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (12,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (32,TO_DATE('20121204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (2,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (12,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (33,TO_DATE('20131204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (3,TO_DATE('20141204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (23,TO_DATE('20141204 00:00:00','YYYYMMDD HH24:MI:SS'));

INSERT INTO T_TEST VALUES (43,TO_DATE('20151204 00:00:00','YYYYMMDD HH24:MI:SS'));

SELECT * FROM T_TEST;

SELECT * FROM T_TEST PARTITION(P_2012_10);

SELECT * FROM T_TEST PARTITION(P_2012_20);

SELECT * FROM T_TEST PARTITION(P_2012_MAX);

SELECT * FROM T_TEST PARTITION(P_2013_10);

SELECT * FROM T_TEST PARTITION(P_2013_20);

SELECT * FROM T_TEST PARTITION(P_2013_MAX);

SELECT * FROM T_TEST PARTITION(P_MAX);

Oracle如何把總表的數(shù)據(jù)分去幾個(gè)小表

復(fù)制B表:

insert into b(城市, 郵編) select distinct 城市, 郵編 from a.

復(fù)制C表:

insert into c(帳號,名字,日期) select distinct 帳號,名字,日期 from a.

oracle分庫分表

oracle暫時(shí)沒有這個(gè)功能。

關(guān)于你說的“oracle分區(qū)表還是不能解決幾百億數(shù)據(jù)存量下的插入性能”是什么意思?是將數(shù)據(jù)插入這么多記錄的表上性能無法保證,還是太大并發(fā)會導(dǎo)致性能問題?

另外,如果你的并發(fā)不太大,而且還想實(shí)現(xiàn)分表,可以通過觸發(fā)器實(shí)現(xiàn)啊

mycat怎么操作oracle做分庫分表的操作

配置不同的oracle用戶就相當(dāng)于不同的databases;比如system,scott

dataHost name="oracle1" maxCon="1000" minCon="1"balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"

heartbeatselect1 from dual/heartbeat

connectionInitSqlaltersession set nls_date_format='yyyy-mm-dd hh24:mi:ss'/connectionInitSql

writeHosthost="hostM1" url="jdbc:oracle:thin:@localhost:1521:orcl"user="system" password="123456" /

/dataHost

dataHost name="oracle2" maxCon="1000" minCon="1"balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"

heartbeatselect1 from dual/heartbeat

connectionInitSqlaltersession set nls_date_format='yyyy-mm-dd hh24:mi:ss'/connectionInitSql

writeHosthost="hostM1" url="jdbc:oracle:thin:@localhost:1521:orcl"user="scott" password="123456" /

/dataHost

數(shù)據(jù)庫一個(gè)表數(shù)據(jù)太多了,如何分表?

這個(gè)要看你是什么數(shù)據(jù)庫。

Oracle 或者 SQL Server 企業(yè)版本的, 可以嘗試使用 分區(qū)表來處理。

如果對 分區(qū)表不熟悉, 或者不高興折騰。

SQL Server 可以嘗試使用 分區(qū)視圖的方式來處理。

Oracle分區(qū)表怎么建唯

1、一般分區(qū)表都會很大,所以可以先創(chuàng)建表空間,為了讓分區(qū)表存放到單獨(dú)的表空間,否則默認(rèn)會存放到USERS表空間

2、創(chuàng)建TABLESPACE TS1:

CREATE TABLESPACE TS1 DATAFILE '/data1/oracle/test.dbf' SIZE 512M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED;

3、創(chuàng)建分區(qū)表,需要確定按什么分區(qū),比如按id或按時(shí)間段:

CREATE TABLE test_201602

(

ID NUMBER(10) NOT NULL,

CREATE_TIME DATE,

)

TABLESPACE TS1

PARTITION BY LIST (ID)

(PARTITION PT_1001 VALUES (1001) TABLESPACE TS1);

4、繼續(xù)增加分區(qū)

ALTER TABLE test_201602 ADD PARTITION "PT_1003" VALUES (1003) LOGGING NOCOMPRESS;

ALTER TABLE test_201602 ADD PARTITION "PT_1004" VALUES (1004) LOGGING NOCOMPRESS;

5、查詢表及分區(qū)數(shù)量

select TABLE_NAME,PARTITION_COUNT,DEF_TABLESPACE_NAME from USER_PART_TABLES order by DEF_TABLESPACE_NAME;

新聞名稱:oracle怎么分表 oracle怎么分庫分表
標(biāo)題網(wǎng)址:http://muchs.cn/article40/hgehho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、軟件開發(fā)網(wǎng)站排名、搜索引擎優(yōu)化、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)