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

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

oracle怎么續(xù)表分區(qū),oracle分區(qū)表增加分區(qū)

如何管理oracle 的分區(qū)表和索引(續(xù)

一、創(chuàng)建分區(qū)表

站在用戶的角度思考問題,與客戶深入溝通,找到錫山網(wǎng)站設(shè)計(jì)與錫山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋錫山地區(qū)。

1、范圍分區(qū)

根據(jù)數(shù)據(jù)表字段值的范圍進(jìn)行分區(qū)

舉個(gè)例子,根據(jù)學(xué)生的不同分?jǐn)?shù)對(duì)分?jǐn)?shù)表進(jìn)行分區(qū),創(chuàng)建一個(gè)分區(qū)表如下:create table range_fraction(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by range(fraction)

(

partition fraction_60 values less than(60), --不及格partition fraction_80 values less than(85), --及格partition fraction_100 values less than(maxvalue) --優(yōu)秀)創(chuàng)建完分區(qū)表后向表中添加一些數(shù)據(jù):declarename varchar2(10);

fraction number(5);

grade number(5);

i number(8):=1;

begin

for i in 1..100000 LOOP

SELECT CHR (ROUND (DBMS_RANDOM.VALUE (97, 122))) INTO NAME FROM DUAL;SELECT ABS(MOD(DBMS_RANDOM.RANDOM,101)) into fraction FROM DUAL;SELECT ABS(MOD(DBMS_RANDOM.RANDOM,10))+1 into grade FROM DUAL;insert into range_fraction values(seq_range_fraction.nextval ,name,fraction,grade);END LOOP;end;

查詢分區(qū)表:--分別查詢所有的,不及格的,中等的,優(yōu)秀的成績(jī)select * from range_fraction;select * from range_fraction partition(fraction_60) ;select * from range_fraction partition(fraction_80) ;select * from range_fraction partition(fraction_100) ;當(dāng)我們的查詢語句不指定分區(qū)的時(shí)候,如果分區(qū)字段出現(xiàn)在where條件之后,Oracle會(huì)自動(dòng)根據(jù)字段值的范圍掃描響應(yīng)的分區(qū):

select * from range_fraction where fraction30; 這句SQL執(zhí)行的時(shí)候只會(huì)掃描不及格的分區(qū)select * from range_fraction where fraction80; 這句SQL執(zhí)行的時(shí)候會(huì)掃描不及格和中等兩個(gè)分區(qū)2、散列分區(qū)在范圍分區(qū)中,分區(qū)字段的連續(xù)值通常出現(xiàn)在一個(gè)分區(qū)內(nèi),而在散列分區(qū)中,連續(xù)的字段值不一定存儲(chǔ)在相同的分區(qū)中。散列分區(qū)把記錄分布在比范圍分區(qū)更多的分區(qū)上,這減少了I/O爭(zhēng)用的可能性。

為了創(chuàng)建一個(gè)散列分區(qū),應(yīng)該用partition by hash語句代替partition by range子句,如下所示:

第一種為各個(gè)分區(qū)指定不同的表空間,表空間數(shù)量不用等于分區(qū)數(shù)量,當(dāng)表空間數(shù)量大于分區(qū)數(shù)量的時(shí)候會(huì)循環(huán)寫入各個(gè)表空間:

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by hash(fraction)

partitions 8

store in (users,tbs_haicheng)

第二種為每個(gè)分區(qū)指定一個(gè)分區(qū)名稱并為其指定表空間:create table range_fraction1(

id number(8),

name varchar2(20),

fraction number(3),

grade number(1)

)

partition by hash(fraction)

(

partition p1 tablespace tbs_haicheng ,

partition p2 tablespace users

);

3、列表分區(qū)

還可以使用列表分區(qū)代替范圍分區(qū)和散列分區(qū)。在列表分區(qū)中,告訴Oracle所有可能的值,并指定應(yīng)當(dāng)插入相應(yīng)行的分區(qū)。

我們將1、2、3、4班級(jí)的數(shù)據(jù)放在一個(gè)分區(qū),將6、7、8的數(shù)據(jù)放在一個(gè)分區(qū),將其他的再放在一個(gè)分區(qū),建表如下:

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by list(grade)

(

partition p1 values(1,2,3,4) tablespace tbs_haicheng ,partition p2 values(5,6,7,8) tablespace users,?

1

partition p3 values(default)

4、組合分區(qū)(創(chuàng)建子分區(qū))

即分區(qū)的分區(qū)。例如可以先進(jìn)行范圍分區(qū),再對(duì)各個(gè)范圍分區(qū)創(chuàng)建列表分區(qū)。

對(duì)于非常大的表來說,這種組合分區(qū)是一種把數(shù)據(jù)分成可管理和可調(diào)整的組成部分的有效方法。

舉個(gè)例子:按照分?jǐn)?shù)范圍分區(qū)后再將ID散列分區(qū):

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(1)

)

partition by range(fraction)

subpartition by hash(id)

subpartitions 4

(

partition fraction_60 values less than(60), --不及格partition fraction_80 values less than(85), --及格partition fraction_100 values less than(maxvalue) --優(yōu)秀)二、索引分區(qū)

在分區(qū)表上可以建立三種類型的索引:1和普通表一樣的全局索引;2.全局分區(qū)索引;3.本地分區(qū)索引1.建立普通的索引create index index_fraction on range_fraction(fraction);2.建立本地分區(qū)索引(就是一個(gè)索引分區(qū)只能對(duì)應(yīng)一個(gè)表分區(qū))?

create index local_index_fraction on range_fraction(fraction) local;3.建立全局分區(qū)索引(屬于散列索引分區(qū),就是一個(gè)索引分區(qū)可能指向多個(gè)表分區(qū))?

create index global_index_fraction on range_fraction(fraction)GLOBAL partition by range(fraction)(

part_01 values less than(1000),

part_02 values less than(MAXVALUE)

);

三、管理分區(qū)表

1、增加分區(qū)

對(duì)于范圍分區(qū)來說,添加一個(gè)分區(qū),必須該分區(qū)劃定的界限高于原來的最大界限,也就是說只能往上加,不能往下加。那么對(duì)于用maxvalue關(guān)鍵字創(chuàng)建的范圍分區(qū)就不能增加分區(qū)了舉例:

create table range_fraction

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by range(fraction)

(

partition fraction_60 values less than(40), --不及格partition fraction_80 values less than(60), --及格partition fraction_100 values less than(80) --優(yōu)秀)對(duì)于該分區(qū)我們?cè)黾右粋€(gè)分區(qū):

ALTER TABLE range_fraction ADD PARTITION fraction_100 VALUES LESS THAN (100);為列表分區(qū)添加一個(gè)分區(qū):

create table range_fraction

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by list(grade)

(

partition p1 values(1,2,3) tablespace tbs_haicheng ,partition p2 values(4,5,6) tablespace users);ALTER TABLE range_fraction ADD partition p3 VALUES (7,8);我們?cè)贋閜3分區(qū)新增兩個(gè)表分區(qū)值:

ALTER TABLE range_fraction MODIFY PARTITION p3 ADD VALUES(9,10);然后再將p3分區(qū)的表分區(qū)值中的10刪掉:

ALTER TABLE range_fraction MODIFY PARTITION p3 DROP VALUES(10);為哈希分區(qū)添加一個(gè)子分區(qū):

ALTER TABLE TABLENAME ADD PARTITION PARTNAME;添加一個(gè)子分區(qū)的格式:

ALTER TABLE TABLENAME MODIFY PARTITION PARTNAME ADD SUBPARTITION SUBPARTNAME;2、刪除分區(qū)刪除分區(qū)比較簡(jiǎn)單,格式如下:

ALTER TABLE ... DROP PARTITION part_name;3、分區(qū)合并合并父分區(qū)格式:ALTER TABLE TABLENAME MERGE PARTITIONS p1-1, p1-2 INTO PARTITION p1 UPDATE INDEXES;如果省略了UPDATE INDEXES 的話需要為受影響的分區(qū)重建索引合并子分區(qū)的格式:

ALTER TABLE TABLENAME

MERGE SUBPARTITIONS part_1_sub_2, part_1_sub_3 INTO SUBPARTITION part_1_sub_2 UPDATE INDEXES;4、轉(zhuǎn)換分區(qū)可以將分區(qū)表轉(zhuǎn)換成非分區(qū)表,或者幾種不同分區(qū)表之間的轉(zhuǎn)換。如下:

CREATE TABLE hash_part02 AS SELECT * FROMhash_example WHERE 1=2;ALTER TABLE hash_example EXCHANGE PARTITIONpart02 WITH TABLE hash_part02;這時(shí),分區(qū)表hash_example中的part02分區(qū)的資料將被轉(zhuǎn)移到hash_part02這個(gè)非分區(qū)表中。

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

1、一般分區(qū)表都會(huì)很大,所以可以先創(chuàng)建表空間,為了讓分區(qū)表存放到單獨(dú)的表空間,否則默認(rèn)會(huì)存放到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對(duì)已建的表分了區(qū)后,再想增加分區(qū)可以嗎

可以的,比如有分區(qū)表如下:

create?table?test

(

msg_id??????VARCHAR2(16),

result??????INTEGER,

ts??????????VARCHAR2(17),

ts_time?????TIMESTAMP(6),

insert_time?DATE)

partition?by?range?(TS_TIME)

(

partition?P20180110?values?less?than?(TIMESTAMP'?2018-01-11?00:00:00')

tablespace?USERS

pctfree?10

initrans?1

maxtrans?255

storage

(

initial?64K??????next?1M

minextents?1

maxextents?unlimited

)

);

如果想增加分區(qū):

alter?table?test?add??partition?P20180112?values?less?than?(to_date('20180113?00:00:00','yyyymmdd?hh24:mi:ss'));

Oracle創(chuàng)建分區(qū)表操作

1、創(chuàng)建語句

create table p(id number)

partition by range(id)

(partition p1 values less than(100) tablespace t1,

partition p2 values less than(200) tablespace t2,

partition p3 values less than(300) tablespace t3);

2、添加分區(qū)

alter table p add partition p4 values less than (400) tablespace t4;

3、清除分區(qū)數(shù)據(jù)

alter table p trunc partition p1;

4、刪除分區(qū)

alter table p drop partition p1;

oracle 表已有分區(qū)怎么加分區(qū)

如果是分區(qū)表可以添加分區(qū),如果不是分區(qū)表,可以把表轉(zhuǎn)換成分區(qū)表,再增加分區(qū)。


分享名稱:oracle怎么續(xù)表分區(qū),oracle分區(qū)表增加分區(qū)
URL鏈接:http://weahome.cn/article/hcpppg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部