首先你的明白分区的特点:
1、分区可以提高可用性。这个可能不容易想到,也就是说一旦分区了,也就是把原来一个物理的表分拆成了若干个物理表,其中如果有一个分区的数据出现了损坏,那么不影响其他分区的数据,这个就是可用性2、要想通过分区,最大程度提高性能,那么最好的办法是把不同的分区放到不同的物理硬盘上,因为数据库的瓶颈最大的就是IO,通过放到不同硬盘,能在读取数据时,启用并行的IO操作,性能会有较大的提升。3、如果在查询语句中包含了分区字段,那么可以减少全表扫描,而只需要扫描相应的分区了,如果进一步建立分区索引,可以进一步提高性能,当然前提是只需要查询某个分区中的少了数据。

解决方案 »

  1.   

    说道这里,又让我想到了另一个问题。很多人都说,sql server简单,容易学会,可能一个月就能熟悉sql server了,但是根据我个人的经验,你要精通,可能需要至少2年的时间。为什么这么说呢?就从这个分区说起吧,看似这个分区好像挺简单的,百度一下,找找别人分区的实例代码,修改一下,运行一下,分区就建好了,等着性能立马提升吧。是这样吗?
    其实不是这样的,如果只是这样,那只能说你想的太简单了。这就像,你有一块地,你想种西瓜,于是就开始种西瓜,等着收成,但最后你发现收成很少,为什么呢?因为你根本不知道你的这块地的特性,就匆忙上马,你也不知道周围的天气情况,实际上根据这些特性,根本不应该种西瓜,而是应该种其他的作物。反应到分区的问题,其实就是可能要优化性能,没必要采用分区技术,而是采用其他的优化技术,或者说就算是采用分区技术,你也需要在其他方面做出改进,比如,如果周围缺水,那么是否考虑建个储水池,来灌溉西瓜田。
      

  2.   

    没任何资料证明简单地建了分区就能提高性能,这个跟文件的存储空间、索引、分区表是否对齐还有是否有分区消除(主要看where条件)有直接的关系
      

  3.   


    不会自动创建分区,但是可以split分区,也就是把最后一个分区拆分成2个分区,这样就达到了增加分区的效果。。也就是说当你把表转化为一个 分区表后,你可以通过split操作来拆分分区,也就是增加了分区,同时通过merge操作,可以合并分区,实现分区的减少。另外,你还可以swith也就是交换分区,吧一个分区交换为一个表,或者反向操作
      

  4.   

    你好,这个split分区,我看了一下资料,还是不太明白,把最后一个分区拆分成2个分区,比如我到了2015年,我就去手动split操作一下吗。可是再往后呢。。?好像很麻烦的样子。能否给个示例呢。