Oracle 同一表的2列上的db分区

Oracle 同一表的2列上的db分区,oracle,Oracle,是否可以对表中的两个列属性进行db分区(列表或范围): 示例:学生表包含年龄和性别 需要创建两个分区,如 年龄18岁 性别=男性或女性 请让我知道这在oracle中是否可行 问候 Praveen您可以用一个属性对表进行分区,用另一个属性对子分区。这将是更常见的方法。您也可以实现复合分区键,但这通常不太常见 希望这只是一个例子,说明你实际上正在努力解决的问题。例如,年龄通常不是一个特别好的分区键。例如,针对student表的绝大多数查询实际上不太可能包含关于学生年龄的谓词。而且,您似乎不太可能希望

是否可以对表中的两个列属性进行db分区(列表或范围): 示例:学生表包含年龄和性别 需要创建两个分区,如 年龄<16岁,年龄=17岁,年龄>18岁 性别=男性或女性

请让我知道这在oracle中是否可行

问候
Praveen

您可以用一个属性对表进行分区,用另一个属性对子分区。这将是更常见的方法。您也可以实现复合分区键,但这通常不太常见


希望这只是一个例子,说明你实际上正在努力解决的问题。例如,年龄通常不是一个特别好的分区键。例如,针对
student
表的绝大多数查询实际上不太可能包含关于学生年龄的谓词。而且,您似乎不太可能希望在一个不断变化的属性上进行分区——随着年龄的增长,将学生从一个分区移动到另一个分区将是非常奇怪的。您通常会选择对至少大部分是静态的属性进行分区。

您所说的分区是什么意思?您到底在尝试什么?业务场景是:在订单表上创建2个分区。分区需要位于zipcode和process flag列上。需要为订单的不同zipcode和另一个partition创建分区,取决于它是否已被处理。该表中有近20亿条记录。@user3908373-可能您要创建的分区要多于2个。您希望基于两个不同的键进行分区。您的
订单
表中的每个查询真的都有邮政编码谓词和已处理指示符谓词吗?这对我来说似乎不太可能--你肯定在根据下订单的客户或下订单的时间进行大量查询,不仅仅是发送到哪个邮政编码。要求是发送属于特定zipcode的订单的报告数据,有时将processflag设置为Y或N,有时仅发送属于特定zipcode的订单。因为有大量的记录,需要有两个独立的分区,但是这种方法可能吗?@user3908373-这是这个表唯一要做的两件事?是否没有其他查询、报告等使用此表?如果是这样,听起来您可以在
zipcode
上进行分区,在
processflag
上进行子分区。这可能会提高这两个进程的性能。当然,它可能会对通过分区键以外的其他方式访问此表的任何其他对象的性能产生负面影响。