【问题标题】:Multiple partitions on a table?一个表上有多个分区?
【发布时间】:2012-02-07 17:03:53
【问题描述】:

我的印象是一张桌子可以放置多个分区,所以当我输入以下代码时,我感到很惊讶:

CREATE TABLE ParentDetails1
(ParentID INTEGER NOT NULL,
ParentName VARCHAR (50) NOT NULL,
DateOfBirth DATE NOT NULL,
Gender VARCHAR (10) CHECK (Gender IN ('m', 'f')) NOT NULL,
CONSTRAINT ParentDetails_PK PRIMARY KEY (ParentID))
PARTITION BY RANGE (ParentName)
    (partition ParentNamePartition1 VALUES LESS THAN ('B'),
     partition ParentNamePartition2 VALUES LESS THAN ('D'),
     partition ParentNamePartition3 VALUES LESS THAN ('F'),
     partition ParentNamePartition4 VALUES LESS THAN ('H'),
     partition ParentNamePartition5 VALUES LESS THAN ('J'),
     partition ParentNamePartition6 VALUES LESS THAN ('L'),
     partition ParentNamePartition7 VALUES LESS THAN ('N'),
     partition ParentNamePartition8 VALUES LESS THAN ('P'),
     partition ParentNamePartition9 VALUES LESS THAN ('R'),
     partition ParentNamePartition10 VALUES LESS THAN ('T'),
     partition ParentNamePartition11 VALUES LESS THAN ('V'),
     partition ParentNamePartition12 VALUES LESS THAN ('X'),
     partition ParentNamePartition13 VALUES LESS THAN (MAXVALUE))
PARTITION BY HASH (ParentID)
    partitions 10
PARTITION BY LIST (Gender)
    (partition ParentGenderPartition1 VALUES ('m'),
     partition ParentGenderPartition2 VALUES ('f'))
CLUSTER
    ParentContact_Cluster (ParentID);

...并得到错误指出只能在一个表上输入一个分区子句?!

有解决办法吗?

非常感谢, 祖鲁语

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您只能使用一种表分区方案。该分区方案可能包括分区和子分区,具体取决于您要解决的问题。

    在一个表上拥有多个相互竞争的分区方案意味着什么?

    【讨论】:

    • 我是数据库优化的初学者,所以还不确定一切如何运作。我认为可以将分区添加到不同的列以帮助更快地查询,但我想我会阅读子分区。非常感谢您的回答!
    【解决方案2】:

    您需要使用子分区来做您想做的事情。 Oracle 11.2 docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      相关资源
      最近更新 更多