真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle分區(qū)鍵怎么配 oracle分區(qū)主鍵

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

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

創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、細河網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為細河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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

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

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

3.1 沒有maxvalue上限分區(qū)設(shè)置,在插入超出分區(qū)的數(shù)據(jù)時會報錯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ū)個數(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) -- 按時間、ID范圍分區(qū) 這個例子是按年的

(

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如何創(chuàng)建組合分區(qū)

oracle組合分區(qū)

由于Interval分區(qū)是針對range的,11g-12.1版本,目前只有Interval—*一共3種Interval的復(fù)合分區(qū)

range-list方法:

partition by range (updatetime)

interval (numtodsinterval(1,'day'))

subpartition by list(PSNCODE)

SUBPARTITION TEMPLATE(

SUBPARTITION REGION_1 values('038716'),

SUBPARTITION REGION_2 values('270719') )

(partition p1 values less than(to_date('2014-05-01','yyyy-mm-dd')))

注意:每個分區(qū)有2個子分區(qū),分區(qū)的子分區(qū)需要手動添加

Interval分區(qū)目前測試,只支持range先分區(qū)的方式

range-hash方法:每個分區(qū)10個子hash分區(qū)(可以指定每個子分區(qū)到單獨的表空間)

partition by range (updatetime)

interval(numtodsinterval(1,'day'))

subpartition by hash(PSNCODE)

SUBPARTITION template

( SUBPARTITION p1 TABLESPACE ts1

, SUBPARTITION p2 TABLESPACE ts2

, SUBPARTITION p3 TABLESPACE ts3

, SUBPARTITION P4 TABLESPACE ts4

)

(partition p1 values less than(to_date('2014-05-01','yyyy-mm-dd')))

注意:這種方式可以實現(xiàn)完全自動的分區(qū),非常適合自增長特性的10位數(shù)以上的大表

hash分區(qū)最好是2的次方個,不然數(shù)據(jù)會分布不均

range-range方法:子分區(qū)需要手動添加,這種分區(qū)需要一般比較少見

PARTITION BY RANGE (time_id)

INTERVAL (NUMTODSINTERVAL(1,'DAY'))

SUBPARTITION BY RANGE(amount_sold)

SUBPARTITION TEMPLATE

( SUBPARTITION p_low VALUES LESS THAN (1000)

, SUBPARTITION p_medium VALUES LESS THAN (4000)

, SUBPARTITION p_high VALUES LESS THAN (8000)

, SUBPARTITION p_ultimate VALUES LESS THAN (maxvalue)

)

(PARTITION before_2000 VALUES LESS THAN (TO_DATE('01-JAN-2000','dd-MON-yyyy')) )

oracle表分區(qū)和索引分區(qū)

一 分區(qū)表技術(shù)概述

二 分區(qū)索引技術(shù)概述

⑴ 本地前綴分區(qū)索引

適用場景:

如果歷史數(shù)據(jù)整理非常頻繁、而且不能承受全局分區(qū)索引重建的長時間帶來的索引不可用

同時、日常交易性能尚能接受、則建議設(shè)計為本地非前綴分區(qū)索引

注意:本地分區(qū)索引不能保證唯一性(除非分區(qū)鍵是約束的一部分)

缺點:

主要體現(xiàn)在數(shù)據(jù)的高可用性方面

當(dāng)DROP分區(qū)后、全局分區(qū)索引則全部INVALID、除非REBULID

但數(shù)據(jù)量越大、重建索引的時間越長

一般來講,如果需要將數(shù)據(jù)按照某個值邏輯聚集,多采用范圍分區(qū)。如基于時間數(shù)據(jù)的按“年”、“月”等分區(qū)就是很典型的例子。在許多情況下,范圍分區(qū)都能利用到分區(qū)消除特性( = = = between…and 等篩選條件下)。

如果在表里無法找到一個合適的屬性來按這個屬性完成范圍分區(qū),但你又想享受分區(qū)帶來的性能與可用性的提升,則可以考慮使用散列分區(qū)。(適合使用 = IN 等篩選條件)

如果數(shù)據(jù)中有一列或有一組離散值,且按這一列進行分區(qū)很有意義,則這樣的數(shù)據(jù)就很適合采用列表分區(qū)。

如果某些數(shù)據(jù)邏輯上可以進行范圍分區(qū),但是得到的范圍分區(qū)還是太大,不能有效管理,則可以考慮使用組合分區(qū)(范圍分區(qū)+hash 或范圍分區(qū)+列表分區(qū))。

create table products_table

(

id number(2),

name varchar2(50),

sale_date date

)

partition by range(sale_date)

interval (numtoyminterval(1,'month'))

(

partition p_month_1 values less than (to_date('2016-01-01','yyyy-mm-dd'))

)

如圖,取 products_table 中的 sale_date 列作為分區(qū)鍵創(chuàng)建按月自增分區(qū);

所有銷售時間在 ‘2016-01-01’之前的記錄都會被放入 p_month_1 分區(qū);

銷售時間在‘2016-01-01’之后的記錄在插入時Oracle會自動創(chuàng)建記錄所屬月的分區(qū);

比如當(dāng)有銷售時間分別為 2016年1月20日 與 2016年2月20日 的兩條記錄插入時,Oracle會分別創(chuàng)建一個上限值為 ‘2016-01-31’的分區(qū)和一個上限值為‘2016-02-29’的分區(qū)來存儲這兩條記錄

oracle數(shù)據(jù)庫怎么建分區(qū)

一般語法:

create?table?t_test?(

pk_id?number(30)?not?null,

add_date_time??DATE,

constraintPK_T_TEST?primary?key?(pk_id)

)

PARTITION?BY?RANGE?(add_date_time)

(

PARTITIONt_test_2013_less?VALUES?LESS?THAN?(TO_DATE('2013-01-01?00:00:00','yyyy-mm-ddhh24:mi:ss'))?TABLESPACE?TS_MISPS,

PARTITIONt_test_2013?VALUES?LESS?THAN?(TO_DATE('2014-01-01?00:00:00','yyyy-mm-ddhh24:mi:ss'))?TABLESPACE?TS_MISPS,

PARTITION?t_test_2014VALUES?LESS?THAN?(TO_DATE('2015-01-01?00:00:00','yyyy-mm-dd?hh24:mi:ss'))TABLESPACE?TS_MISPS

);

請教Oracle如何給分區(qū)表添加主鍵

和普通表添加主鍵沒什么區(qū)別,直接給表T添加主鍵即可。

如果主鍵是mydate,建議加主鍵的時候使用USING INDEX字句,可以使用local_date_index作為主鍵索引。


文章標(biāo)題:oracle分區(qū)鍵怎么配 oracle分區(qū)主鍵
轉(zhuǎn)載來源:http://weahome.cn/article/hpggod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部