zoukankan      html  css  js  c++  java
  • 对分区表的一些总结

    分区表分为:
    范围分区(partition by range),列表分区(partition by list),HASH分区(partition by hash)

    有多少个分区就有多少个segment

    其实HASH分区最大的好处在于,将数据根据一定的HASH算法,均匀分布到不同的分区中去,避免查询数据时集中在某个地方
    ,从而避免热点块的竞争,改善IO,此处时间列建HASH分区一般不妥当,因为我们经常都指定具体的时间来完成数据检索,
    或者是指定具体的时间来完成数据清理,对这HASH分区来说,就不合适了。HASH可以精确匹配,无法范围扫描。


    分区表示有额外开销的,如果分区表数量过多,oracle就需要管理过多的段,在操作分区表时也容易引发oracle内部大量的
    递归调用。所以一般只有大表才建议分区,记录数在100万以下的表,不建议分区。


    分区表的特性:
    1.高效的分区消除
    可以精确的查到所要查到的位置
    可以用truncate删除某个区的数据
    2.分区交换(转移备份)
    alter table 分区表 exchange partition 分区名 with table 中间表
    3.分区切割
    比如:alter table 分区表 split partition p_max at (TO_DATE('2013-02-01','yyyy-mm-dd')) into (partition p2003_01,partiton p_max);
    ①分区切割的三个关键字split,at和into
    ②at部分在此处说明了具体的发范围,小于某个指定的值。
    ③into部分说明分区被切割成两个分区。
    4.分区合并
    比如:alter table 分区表 merge partition p2013_02,p_max into partition p_max;
    ①分区合并的关键字是merge和into
    ②merge后面跟着的是需要合并的两个分区名
    ③into部分为合并的分区名,可以是新的分区名,也可沿用已经存在的分区名
    5增加分区和删除分区
    ①分区增加add partition,分区删除drop partition
    ②由于maxvalue分区的存在,无法追加新的分区,必须删除了才可以追加


    分区表的索引
    全局索引:create index 索引名 on range_part_tab(deal_data);
    局部索引:create index 索引名 on range_part_tab(area_code) local;
    N/A表示局部索引

    分区表的相关陷阱
    1.索引为何频频失效
    通过实验用alter table range_part_tab truncate partition p1;一个分区可以看到全局索引失效了,局部没有失效。
    oracle提供了一个有用的参数update global indexes,可以有效的避免全局索引失效。
    alter table range_part_tab truncate partition p2 update global indexes;
    其中的分区转移,切割。合并。增删都可以用这个参数防止索引失效。

  • 相关阅读:
    数据结构实践——败者树归并模拟
    systemctl介绍
    Andriod Atom x86模拟器启动报错。
    (白书训练计划)UVa 11572 Unique Snowflakes(窗体滑动法)
    OpenCV2.3.1在CentOS6.5下的安装
    本学期课程教学要解决这个问题要点备忘录
    firefox浏览器和IE
    [LeetCode] Validate Binary Search Tree
    android性能优化优秀文章
    如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片
  • 原文地址:https://www.cnblogs.com/wjmbk/p/8474061.html
Copyright © 2011-2022 走看看