oracle为多个分区和子分区提供了大量的条目

时间:2014-04-02 15:51:13

标签: oracle database-performance database-partitioning

我们有一个包含大量数据的表(Oracle)(~400GB,大约有360亿条目)。在我们频繁的操作中,我们选择两个字段:一个是字符串(KEY),第二个是日期(ENTRYTIME)。

这是我们的表格结构:

CREATE TABLE Table1 (     " NAME" VARCHAR2(40 BYTE)不为空,     " KEY" VARCHAR2(90)not null,     " ENTRYTIME" TIMESTAMP(6)not null,     " REF" VARCHAR2(60 BYTE)不为null, )

我的建议是按字符串使用分区,按日期使用子分区,为表格使用索引,为表格使用NOLOGGING。

详细地说,我想我们可以根据字符串的第一个字符(字段KEY)的ASCII代码范围制作4个分区。 E.g:

PARTITION p0 VALUES LESS THAN (32)
PARTITION p1 VALUES LESS THAN (64)
PARTITION p2 VALUES LESS THAN (96)
PARTITION p3 VALUES LESS THAN (maxvalue)

然后,对于每个分区,我们要创建一个2周的子分区,这意味着我们将有26个子分区/分区/年,所以总共:26 * 4 = 104个子分区/年。

目标是运行一个清除作业,每隔2周删除一个分区(最旧的)。

理论上,在我看来,当我们插入新记录时,Oracle会根据字符串和日期直接知道它的存储位置。当我们选择SELECT时,Oracle将确切地知道从哪里获取它,因为我们所有的SELECT操作都基于KEY,或者基于ENTRYTIME,或者两者都是(更快)。

您如何看待这种分区?您是否认为在perfs方面这比104只子分区更好?

如果Oracle可以毫无问题地处理这104个子分区,您认为它可以处理更多,208(每周一个子分区)吗?

此致

0 个答案:

没有答案