辞旧迎新

 心情随笔  7 条评论 »
十二 312009
 

光阴如梭,眨眼间,一年又过了。。。

01月,在沪宁高速上飙到190码,此记录至今仍保留,也因此拿到生平第一张超速罚单
02月,黄山自驾游,看到了近十年中最美的云海跟日出;生日时,买了台Iphone作为礼物送给自己
03月,金融危机爆发,HJ裁员,IT被裁30%,眼看朋友们一个个离开
04月,写简历,开始寻觅新的工作
05月,护照原因,蜜月选择了云南,昆明-丽江-香格里拉-泸沽湖,第一次写万字以上的游记
06月,李公堤办酒宴请同事朋友,结果新郎开车送喝醉的伴郎回家
07月,自驾西塘,半夜拎着啤酒瓶在西塘的小径上唱歌
08月,献血,有点紧张
09月,疯狂面试,不停拒与被拒,人称面霸
10月,桂花香气袭来,新的OFFER到来
11月,递交辞呈,怀着无限怀念跟些许不舍;自驾长兴拍银杏,第一次带狗出远门
12月,新工作,新城市,新环境,新的挑战跟机遇

2010年,我来了!

Oracle Partition Table Basic

 技术学习  1条评论 »
十二 292009
 

在数据仓库中经常会用到 Partition Tables & Index,这些天客户都放假,有点空闲时间,把关于 Partition 的概念重新过一遍,顺便简单整理如下:

What Partition:

Partition 就是分区,将一张表或者索引根据不同的条件划分成一个个分区,逻辑上来看跟普通表无异。

When Partition:

一般来说,当你某张表中的数据量非常庞大,达到百万级别,或数据大小达到以G为单位计时候,建议使用 Partition。

Why Partition:

对于应用来说,由于数据量巨大,当进行巨额数据之间的 join 操作时,使用 Partition 会极大的提高性能;对于管理来说,Partition 大大的加强了管理的简便性。

Which Partition:

oracle 10g 主要提供了4种分区的方式

1, Range Partitioning
2, Hash Partitioning
3, List Partitioning
4, Composite Partitioning

Range Partitioning
这种分区是最普遍的分区方法,表中的数据若能够按照逻辑范围来划分(比如月份),就可以采用此方式。

[code][color=Red]Create TABLE sonic_range
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_date DATE)
PARTITION BY RANGE(sonic_date)
(PARTITION sonic_jan2009 VALUES LESS THAN(TO_DATE('02/01/2009','DD/MM/YYYY')),
PARTITION sonic_feb2009 VALUES LESS THAN(TO_DATE('03/01/2009','DD/MM/YYYY')),
PARTITION sonic_mar2009 VALUES LESS THAN(TO_DATE('04/01/2009','DD/MM/YYYY')));[/color][/code]

Hash Partition
这种分区是基于 Hash 算法的,在一个或多个列上应用 Hash 函数,然后将表中的数据尽可能平均的打散,分布在不同的分区上。

[code][color=Red]Create TABLE sonic_hash
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_week_no NUMBER(2))
PARTITION BY HASH(sonic_id)
PARTITIONS 4;[/color][/code]

List Partition
通过明确的关键字,将数据进行分区,这些关键字都是离散的,一般是无规律可循的

[code][color=Red]Create TABLE sonic_list
(sonic_id NUMBER(5),
sonic_name VARCHAR2(30),
sonic_state VARCHAR2(20),
sonic_date DATE)
PARTITION BY LIST(sonic_state)
(PARTITION sonic_north VALUES('Ji lin', 'Bei Jing') COMPRESS,
PARTITION sonic_south VALUES('Guang dong', 'Hai nan', 'Yun nan'),
PARTITION sonic_central VALUES('Jiang su', 'Shang hai'));[/color][/code]

Composite Partitioning
顾名思义,将前三者任意两种或者三种同时进行分区,就是组合分区,这里就不举例了。

How Partition:

[code][color=Red]Add Partition:

Alter TABLE table_name ADD PARTITION partition_name VALUES LESS THAN (TO_DATE('2009-12-01','YYYY-MM-DD') TABLESPACE tablespace_name;

Delete Partition:

Alter TABLE table_name Drop PARTION partition_name;

Truncate Partition:

alter table table_name truncate partiton partition_name;

Merge Partition:

alter table table_name merge partitons partition_name1, partition_name2 into partition_name3;

alter index index_name rebuild partition partition_name3 parallel 2;

Split Partition:

Alter TABLE table_name SPLIT PARTITON partition_name AT TO_DATE ('1999-11-01','YYYY-MM-DD') INTO (partition partition_name1, partition partition_name2);

alter table table_name split partition partition_name values (1,2) into (partition partition_name1,partition partition_name2);

Exchange Partition:

alter table table_name exchange partition partition_name with table commom_table_name;

Query Partition:

select * from table_name partition(partition_name)

Export Partition:

exp username/password tables=table_name:partition_name file=xxx.dmp

Import Partition:

imp username/password file=xxx.dmp tables=(table_name:partition_name)

Get Partition Information
dba_segments
dba_part_key_columns

dba_tables
dba_tab_partitions

dba_indexes
dba_ind_partitions[/color][/code]

我还活着

 心情随笔  2 条评论 »
十二 222009
 

好久没有更新日志,事实上我还活着,换了份工作,换了个城市,也换了一个生活环境,只是刚开始显得有点忙碌,毕竟上手适应还是需要段时间的。

我还活着,活的好好的,希望能够越活越好!

Powered by WordPress 3.3.1 CopyRight 2004~2012, Sonic Tang

虚拟主机赞助商:海波,苏ICP备11082989号

Suffusion theme by Sayontan Sinha