如题,现有一分区表,除主键索引外其余索引均为分区索引,疑问如下:
1、现在有dba指出修改计划将表主键的全局索引修改为分区索引,不知道修改后能不能够起到优化的作用??
2、分区索引对主键中的数据一致性有没有影响??
3、在不影响生产库的情况下怎样将全局主键索引修改为分区索引??
按照我的理解答的,不全对啊。谢谢
答1,分区表在管理上的确非常方便,在性能方面的表现也不错。
但是就是有一点不是很理想:删除分区和TRUNCATE分区表中数据,会造成主键和全局索引的失效。如果数据表非常大,索引的重建也是需要花很长时间的。
所以:首先根据应用尽量将索引修改为分区索引(个别索引可能不能修改),删除主键也修改为唯一分区索引。
经过测试表明,如果分区字段选择合理,使用分区索引的效率比全局索引要高一些,而主键和唯一分区索引的效率大体相当,因此这样的优化还是非常值得的,如果由于优化导致个别应用效率下降,也可以通过应用的调整进行优化。
答2:主键如果不是你选择的分区字段的话, 在分区表上创建的唯一索引必须包含分区字段,否则会提示错误(ORA-14039),这一点也需要特别注意。
答3:删除索引,创建所以,具体sql,google
注:主键索引和主键约束的创建与删除顺序
创建主键索引 --> 创建主键约束
删除主键约束 --> 删除主键索引
注:
1.分区字段不是主键的情况下,只可以创建全局分区索引,不可以创建本地主键分区索引.
只有分区字段为主键时才可以创建本地主键分区索引.
2.如果创建本地唯一分区索引,除指定索引字段外还要加上表分区字段.
这种索引意义不大:因为这样构成复合索引,索引改变,约束也改变了.
3.如果创建非唯一索引则不需要表分区字段.
4.创建全局分区索引后可以创建约束.
1、现在有dba指出修改计划将表主键的全局索引修改为分区索引,不知道修改后能不能够起到优化的作用??
2、分区索引对主键中的数据一致性有没有影响??
3、在不影响生产库的情况下怎样将全局主键索引修改为分区索引??
按照我的理解答的,不全对啊。谢谢
答1,分区表在管理上的确非常方便,在性能方面的表现也不错。
但是就是有一点不是很理想:删除分区和TRUNCATE分区表中数据,会造成主键和全局索引的失效。如果数据表非常大,索引的重建也是需要花很长时间的。
所以:首先根据应用尽量将索引修改为分区索引(个别索引可能不能修改),删除主键也修改为唯一分区索引。
经过测试表明,如果分区字段选择合理,使用分区索引的效率比全局索引要高一些,而主键和唯一分区索引的效率大体相当,因此这样的优化还是非常值得的,如果由于优化导致个别应用效率下降,也可以通过应用的调整进行优化。
答2:主键如果不是你选择的分区字段的话, 在分区表上创建的唯一索引必须包含分区字段,否则会提示错误(ORA-14039),这一点也需要特别注意。
答3:删除索引,创建所以,具体sql,google
注:主键索引和主键约束的创建与删除顺序
创建主键索引 --> 创建主键约束
删除主键约束 --> 删除主键索引
注:
1.分区字段不是主键的情况下,只可以创建全局分区索引,不可以创建本地主键分区索引.
只有分区字段为主键时才可以创建本地主键分区索引.
2.如果创建本地唯一分区索引,除指定索引字段外还要加上表分区字段.
这种索引意义不大:因为这样构成复合索引,索引改变,约束也改变了.
3.如果创建非唯一索引则不需要表分区字段.
4.创建全局分区索引后可以创建约束.