数据分区消除指的是数据库服务器根据查询谓词确定只需要访问表的一部分数据分区就可以实现查询的能力。当对分区表运行决策支持查询时,数据分区消除可以提供特定好处。
分区表使用了数据组织方案,即,表数据根据该表中一个或多个表分区键列中的值分布到多个存储对象(称为数据分区或范围)中。根据 CREATE TABLE 语句的 PARTITION BY 子句中指定的内容,给定表的数据被划分到多个存储对象中。这些存储对象可以在不同的表空间中,也可以在相同表空间中。
以下示例演示了数据分区消除所产生的性能方面的好处。如果发出以下语句:
CREATE TABLE custlist(subsdate DATE, Province CHAR(2), AccountID INT) PARTITION BY RANGE(subsdate) (STARTING FROM '1/1/1990' IN ts1, STARTING FROM '1/1/1991' IN ts1, STARTING FROM '1/1/1992' IN ts1, STARTING FROM '1/1/1993' IN ts2, STARTING FROM '1/1/1994' IN ts2, STARTING FROM '1/1/1995' IN ts2, STARTING FROM '1/1/1996' IN ts3, STARTING FROM '1/1/1997' IN ts3, STARTING FROM '1/1/1998' IN ts3, STARTING FROM '1/1/1999' IN ts4, STARTING FROM '1/1/2000' IN ts4, STARTING FROM '1/1/2001' ENDING '12/31/2001' IN ts4);
假定您对 2000 年的客户信息感兴趣。如果发出以下查询:
SELECT * FROM custlist WHERE subsdate BETWEEN '1/1/2000' AND '12/31/2000';
正如图 101所显示的那样,数据库服务器确定只需要访问表空间 4(ts4)中的一个