ORACLE和DB2都引入了partition的概念.可是区别仍是至关大的.数据库
ORACLE的分区是表的分区,每张表能够按某一列的值将数据进行组织,索引,和查询.每一个分区能够放在不一样的表空间里,各分区能够单独操做.oracle
DB2的分区是数据库分区,它的每一个分区能够视为一个独立的数据库,有自已的后台进程,内存结构和存储磁盘,分区的数据库的每一个分区上的表空间是一致的,也就是说,一个分区数据库中的表,就好像把数据分区放在不一样的数据库中同样.在分区数据库中建表,如不指定分区键,系统认为表的第一个字段是分区键.url
在最新未公开发布的DB2 V9.1中,也支持了表分区的概念,其用法与ORACLE的用法相似.spa
ORACLE的分区表建表语句:orm
CREATE TABLE product_informationblog
( product_id NUMBER(6)索引
, product_name VARCHAR2(50)进程
, product_description VARCHAR2(2000)ip
, category_id NUMBER(2)内存
, weight_class NUMBER(1)
, warranty_period INTERVAL YEAR TO MONTH
, supplier_id NUMBER(6)
, product_status VARCHAR2(20)
, list_price NUMBER(8,2)
, min_price NUMBER(8,2)
, catalog_url VARCHAR2(50)
, CONSTRAINT product_status_lov
CHECK (product_status in (’orderable’
,’planned’
,’under development’
,’obsolete’)
) )
PARTITION BY HASH (product_id)
STORE IN (prod_ts1, prod_ts2, prod_ts3, prod_ts4, prod_ts5);
DB2的分区数据库的建表语句:
CREATE TABLE DEPT_INFOMATION
(OP_TIME VARCHAR(140),
DEPT_NO VARCHAR(140),
DEPT_NAME VARCHAR(140),
UP_DEPT_NO VARCHAR(140),
UP_DEPT_NAME VARCHAR(140),
DEPT_FUNC_DEPICT VARCHAR(140),
FOUND_TIME VARCHAR(140),
DIS_FOUND_TIME VARCHAR(140),
COUNTRY VARCHAR(140),
EMPL_COUNT VARCHAR(140)
)
DATA CAPTURE NONE
IN TBS_ODS
INDEX IN TBS_IDX
PARTITIONING KEY
(DEPT_NO
) USING HASHING
NOT LOGGED INITIALLY;
DB2 V9.1的建分区表的语句:
CREATE TABLE sales (year INT, month INT)
IN tbsp1, tbsp2, tbsp3, tbsp4, tbsp5, tbsp6, tbsp7, tbsp8
PARTITION BY RANGE(year, month)
(STARTING FROM (2001, 1) ENDING (2001,3) IN tbsp1,
ENDING (2001,6) IN tbsp2, ENDING (2001,9)
IN tbsp3, ENDING (2001,12) IN tbsp4,
ENDING (2002,3) IN tbsp5, ENDING (2002,6)
IN tbsp6, ENDING (2002,9) IN tbsp7,
ENDING (2002,12) IN tbsp8)