性;
- 否则不使用并行。
10、alter session set skip_unusable_indexes
允许用户在有unusable index或者index partition的table上进行DML操作。否则就会产生错误。用在进行大规模的修改和加载数据的时候,推迟index的维护。
但是如果query指定不可用的index或者index partition,依然会报错。
不能跳过对不可用的唯一索引的维护。
11、alter table split partition
建立两个新的partition,有自己新的segment,新的物理属性,和initial extent。原来partition的segment都丢弃。
用在如果partition太大,导致备份、恢复和维护操作时间很长,可以考虑使用split tablespace。
也可以用在重新分布I/O负载。
在split partition的时候,同样建立相应的local index。
如果在split的时候出现问题,新的segment就删除,语句rollback。
index即使是不可用的,index partition也可以split。
例子:
ALTER TABLE parts SPLIT PARTITION depot4
AT('40-001') INTO
( PARTITION depot4 TABLESPACE ts009 MINEXTENTS 2,
PARTITION depot9 TABLESPACE ts010
);
原来的index partition缺省的 物理属性用于新的local index partition,存放在table partition的tablespace里。除非已经定义了tablespace。
新分离出来的包含数据的index partition被设置为不可用,空的index partition的index是valid的。
12、alter index split partition
把global index的一个partition分为两个partition。注意必须是global的,不能自己来split local index。
建立新的index segment,不再使用原来的空间。
如果是切分不可用的index partition,则新的index partition都是不可用的。必须rebuild。
如果index partition包含数据,则新的partition都是不可用的。
13、alter table move partition
删除旧的数据segment,建立新的segment,即使没有指定新的tablespace。
用于把数据移动到其他的partition,重新组织数据减少碎片,或者改变物理属性。
如果指定了partition 名字,则move partition之后,影响所有的index为不可用。包括
- 所有global index partition
- 每个local index的相应partition,但是它们的tablespace属性不变。
并行度:
如果在move中指定,则使用之,
否则使用table缺省的并行设置,
否则就不使用并行了。
但是要注意的是move命令中的parallel不改变table本身的parallel设置。
如果使用NOLOGGING,这个PARTITION应该周期性的备份。
14、ALTER TABLE EXCHANGE PARTITION
可以把非分区的TABLE和分区的数据交换。
这个过程是双向的。
实际上不交换数据。
在数据字典进行更改。
这个TABLE必须是存在的,不能是PARTITION TABLE或者是CLUSTER TABLE。
用户必须对两个表有ALTER 权限。
这两个TABLE不能有任何约束。
不激活任何TRIGGER。
这两个PT和T必须有相同的结构:相同的CLOUMN,相同的CLOUMN类型和大