zoukankan      html  css  js  c++  java
  • 再聊聊分区表

         前一阵子写了一点有关分区表的东西(http://www.cnblogs.com/wingsless/archive/2012/02/11/2347111.html)。我们的项目限于甲方的抠门,分配给我们的磁盘空间相当的小,因此我们的项目中并不习惯使用索引这个好用的东西,因为索引也是要耗用很大的空间的,有的时候索引占据的空间比数据表还要大。于是我们约定俗成的使用了分区表,而且很多同事认为分区表就相当于建立了很多很多的小表一样。事实,确实如此吗?

         建立一张分区表test1,按照month列进行分区,数据量大概在1200万左右,201205这个分区中有4194304条记录。

         建立一张表test_201205,结构和test1一样,只不过只有test1这个表的一部分数据,也就是存在201205这个partition中的所有数据,4194304条记录。

         对两张表analyze,这样一来就保证了oracle能正确的生成执行计划。

         首先看看分区表的执行计划:

        

           非常好的使用了分区条件。

           接下来统计下test_201205的执行计划,如图:

          

           由此可以看出,物理存在的表还是要快一点,但是这个差异已经不大了。

           但是有一个有意思的现象,如果把小表中的查询条件加上,就会发生有意思的变化:

         

           加上了一个无关紧要的条件,Cost就变成了和分区表一样的数值。这是为什么,我还是以后慢慢探究吧。

           从我以上的探究和过去的博文中的研究可以看出来,分区表在某些时候还是比较具有优越性的。

           但是空分区还是要占据空间的。其他的,以后慢慢研究吧。

        

  • 相关阅读:
    泛型的运用
    LinkdList和ArrayList异同、实现自定义栈
    MD5文件去重
    mysql协议解析
    solrconfig.xml主要配置项
    自定义特性使用
    使用OWIN 为WebAPI 宿主 跨平台
    Web.config配置文件详解
    IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案
    GitHub 创建工程
  • 原文地址:https://www.cnblogs.com/wingsless/p/2625809.html
Copyright © 2011-2022 走看看