TimesTen 中也有Partition的概念,但它不同与 Oracle 的 Partition ,而且也没有显示的语法来定义,只是在有些TimesTen的标准文档中提到。如 在TimesTen的系统限制中提到:
Maximum number of partitions in a table 255 255
即每个表的分区数最大为255,但表的分区不是通过类似与Oracle的语法 create table … partition by range … 来创建的,那么它是怎么创建的呢?
在TimesTen的官方文档中提到:当一个表被创建时,它只有一个partition。当 alter table add column 时,一个新的分区就被自动创建,且刚才通过alter table 新增的一列或者多列就被存在新的分区中了。以后即使使用 alter table drop column ,新增加的分区也不会被自动删除。那么当要读取涉及到新分区中的数据的时候,就会比普通的表要多一次读操作,显然,对性能会有一些影响。可以通过下列语句来确定一个表是否有多个分区:
SELECT tblname, sys16 FROM SYS.TABLES;
所以在创建表的时候,最好一次确定下来创建好,而不要通过alter table来修正。当发现一个表的有多个分区时,可以通过ttmigrate /ttrestore 来删除多个分区。