1 简介
随着信息业的发展
,在
企业级数据库应用中
,经常会有一些几十GB,上百GB的数据表
。这些大数据量表的设计,维护及其备份都是数据库管理中的重点及其难点
。本文就从设计、维护及其备份方面探讨一下大数据量表的管理。
2 设计
2.1 大表时效性
大数据量表的数据量一般来说是跟时间成正比的,时间越久,数据量越大。 在设计阶段首先要考虑这些大表的时效性。
通常情况,在一定的时间区间,数据的访问频度比较大,超过这个区间,数据的访问频度极小。这个时间区间根据不同的应用类型而不同,通常是几个月。超过这个时间区间的数据可以认为是历史数据,数据访问的可能性不打。在
企业应用中,并不是所有的数据都需要保留在生产数据库中,对于这些历史数据,可以考虑离线存放,或者是存放在另外的数据库中,比如数据仓库等。
大表的时效性可以通过在表上加时间戳列来实现。
2.2 使用分区表
Oracle 8以后提供了分区表的功能,分区表可以把一个表的数据从物理和逻辑上分割成小的区域。
Oracle支持非常大的分区表,一个对象可以允许多达64000个分区。对于大表来说,使用分区表是首选方案。 分区表可以改善表的维护、备份、恢复及查询性能。
分区表有4种分区方式:
n Range Partitioning
n Hash Partitioning
n Composite Partitioning
n List Partitioning
对于有时效性的大表,可以采用按时间分区的 Range Partitioning表,例如按天分区的分区表。
CREATE TABLE Test(
DATATIME DATE NOT NULL,
P1 NUMBER NULL,
P2 NUMBER NULL,
P3 NUMBER NULL,
P4 NUMBER NULL,
P5 NUMBER NULL,
P6 NUMBER NULL,
P7 NUMBER NULL,
P8 NUMBER NULL,
CONSTRAINT PK_TEST PRIMARY KEY (datatime, p1,p2) USING INDEX LOCAL TABLESPACE USERINDEX