使用簇来保存主要用来查询的表(而非插入和更新站主导),查询时通常要联合本簇内的多个表的数据,或者单个表中检索出相关数据。其主要目的是加快查询时的速度。而分区表是可以有大量的DML数据操作的,同时,在查询时可以根据分区表的类型不同指定不同的查询条件,如某个分区,以加快对数据的查询或增删改的速度。两者不可以同时使用!在实际应用中,更多时候应该分析自己的业务,看适合那种方式。例子: Oracle数据库自带的数据字典,使用簇的: select dc.cluster_name,dc.tablespace_name from dba_clusters dc; --簇select a.table_name,a.tablespace_name,a.cluster_name from dba_tables a where a.cluster_name is not null ;而比较大型的系统,如Oracle ERP R12,其中比较大的表subleger存储的财务分录信息,则是分区表。其中的数据量增加比较快,但同时又需要对该表进行大量的查询。
hash?
heap?
Oracle数据库自带的数据字典,使用簇的:
select dc.cluster_name,dc.tablespace_name from dba_clusters dc; --簇select a.table_name,a.tablespace_name,a.cluster_name
from dba_tables a where a.cluster_name is not null ;而比较大型的系统,如Oracle ERP R12,其中比较大的表subleger存储的财务分录信息,则是分区表。其中的数据量增加比较快,但同时又需要对该表进行大量的查询。
而象大型业务表,比如存储库存交易历史记录表,则可以考虑分区。可以使用的分区的方式在不同版本的数据库中有不同。ora10g对数据库的分区表的功能做了改进。