- 最后登录
- 2023-8-16
- 在线时间
- 1686 小时
- 威望
- 2135
- 金钱
- 50532
- 注册时间
- 2011-10-12
- 阅读权限
- 200
- 帖子
- 5207
- 精华
- 39
- 积分
- 2135
- UID
- 2
|
2#
发表于 2012-1-29 15:35:34
1. split partition 本身是比较缓慢的分区ddl操作
如果可能的话, 使用exchange partition 替代 split 操作
将 maxvalue partition exchange 到一个single-partition table,包括索引
原 maxvalue partition 变成一个空的分区, 此时split 会很快 => P(last-1), P(last) 2个分区
将之前的存放 maxvalue的 非分区表 exchange 到 P(last-1) , 注意 是否采用INCLUDING INDEXES(要求是local partitioned index) 避免索引失效,同时可以采用 WITHOUT VALIDATION 来加速。 -- 对于exchange ,nologging 无效
完成以上操作后, 注意分区的统计信息 问题
2.
直接split partition ,
ALTER TABLE … SPLIT PARTITION 可以通过nologging 加速
Split partition 是可 并行化的DDL 操作 alter session enable parallel ddl;
建议加大 多块读等参数:
alter session set db_file_multiblock_read_count=512;
alter session set db_file_multiblock_read_count=512;
alter session set events '10351 trace name context forever, level 128';
此外需要注意的是 当split partition table 上有 global partition index 的话 可能造成split 十分缓慢的性能问题。
时间比较紧促 , 所以总结可能不太完整。 |
|