ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 续_oracle10g_10.2.0.5_构建生产某表为分区及分区索引的日志(二)_parallel_nologging

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

原创 Linux操作系统 作者:wisdomone1 时间:2013-01-06 09:29:09 0 删除 编辑
   前几日在文章: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,并行操作的原理是什么,在下文另行测试
 
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-752176/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12689910