oracle分区设置为nologging,续_oracle10g_10.2.0.5_构建生产某表为分区及分区索引的日志(二)_parallel_nologging...

前几日在文章:http://space.itpub.net/9240380/viewspace-751897,为生产某表构建了分区类型及本地分区索引和唯一索引.

今天上司通知构建的索引与要求不一致.

-----直接在plsql developer查看索引列,本地分区索引的索引列全为组合索引,前缀列皆是分期键列reqtime

-----侯至晚上,开始删除上述索引,并重建之.

------创建全局唯一索引,作用主键用(注:如下索引名为简略皆用测试名,t_partition表结构与生产某表相同,id为主键,reqtime为分键列)

create unique index pk_x on t_partition(id);

-----创建分区索引reqtime

create index idx_reqtime on t_partition(reqtime) tablespace idx_tbs local;

--创建索引语句报内存空间不足

因为创建索引要采用sequential read方式读取数据块,要在内存中排序

--采用并行及非日志方式创建索引,并指定索引表空间

create index idx_reqtime on t_partition(reqtime) tablespace idx_tbs nologging parallel 6 local;

--同时在另一会话监控v$session_wait,发现大量contention:tm-contention事件,同时发现了px并发事件

select * from v$session_wait;

---启用并行及非日志方式创建索引,2分钟创建索引完毕,上述v$session_wait事件及px并发事件也同时消失

--同理,创建其它的分区本地索引

--查看创建的唯一索引和几个分区本地索引

select * from user_ind_partitions;

--禁用上述相关索引的并行

alter index pk_x parallel 1;

alter index idx_x parallel 1;

--查看索引是否禁用并行

select * from user_indexes where table_name='T_PARTITION'

--后记:

1,并行创建索引时,如何根据系统负荷指定cpu parallel

2,并行操作的原理是什么,在下文另行测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值