1. 在SQL SERVER 2008 R2 SP2之前版本,对分区只支持到1000个分区,之后版本支持到15000个分区。
2. 分区索引对齐并不要求索引和表使用同一分区方案,但要求两者使用的分区方案本质相同,即:
        1) 分区函数的参数具有相同的数据类型;
        2) 分区函数定义了相同数目的分区;
        3) 分区函数为分区定义了相同的边界值。

3. 分区合并:合并边界值所在的分区被删除,然后向邻近的分区合并。
4. 查看指定值所属分区:SELECT $PARTITION.partitionFunctionName('express')
5. 查询指定分区的数据:
    SELECT * FROM [dbo].[TB1]
    WHERE $PARTITION.pf_Test(PID)=$PARTITION.pf_Test(2155)
6. 将非分区表装换成分区表:删除聚簇索引,新建聚簇索引并指定分区键和分区函数,重建非聚簇索引。
7. 对不在同一文件组的两个分区进行合并,需要考虑合并照成的IO影响,对处于同一个文件组的两个分区合并,不会造成过多IO影响。
8. 合并分区:ALTER PARTITION FUNCTION patitionFunctionName() MERGE RANGE(rangeValue)
9. 拆分分区:
    1)指定新分区使用文件组:
            ALTER PARTITION SCHEME partitionSchemaName 
            NEXT USED fileGroupName;
    2)修改边界值:

ALTER PARTITION FUNCTION  partitionFunctionName  ()  
            SPLIT RANGE (rangeValue)
10. 可以对两个相邻的分区进行合并,如果两个分区都不为空,那么合并可能耗费大量时间和资源。
12. 在内存低于16GB的服务器上,不推荐使用超过1000的分区
13. 在分区表上创建非聚集非对齐索引时,会同时对所有分区上创建排序表,因此需要使用大量内存,当内存不足时,创建失败。
14. 在分区表上创建非聚集对齐索引时,会依次在每个分区上创建排序表,由于创建排序表过程是串行执行,因此不会使用大量内存从而使性能下降。
15. 当内存有压力时,如需要在分区数较大的分区表上建立非聚集非对齐索引时,可修改最大并行度为较小值来降低创建索引的内存使用。
16. 在使用分区表时,应该检查和修改分区表的锁升级

  

--====================================
--查看表的锁升级设置
SELECT
TB.name AS TableName,
TB.[lock_escalation],
TB.[lock_escalation_desc]
FROM sys.tables TB
WHERE TB.name='TB1' --==================================
--将表的锁升级设置为AUTO
ALTER TABLE [dbo].[TB1] SET (LOCK_ESCALATION = AUTO )

优点:

1. 分区可以使得单个分区表或分区索引中数据大大减少,从而提高查询和索引重建和整理的速度。

2. 将数据合理分散到多个分区后,可以有效解决数据热点问题。

3. 表分区和索引分区使用同一个分区函数时,可以快速地换出和换出某个分区的数据,在清理历史数据时很有效。

4. 当有多组磁盘时,可以使用分区将磁盘压力分散到多组磁盘上,来提高磁盘使用率。

缺点:

1. 当查询需要跨越多个分区时,可能会造成逻辑读取较高,对多个分区数据合并可能会导致CPU过高(SORT MERGE OR HASH MERGE)

2. 在分区表上建立唯一索引时,如唯一索引也使用相同分区函数,则有利于将数据按区迁出和迁入,但唯一索引必须附带分区键,会影响对整表求MAX/MIN等操作的效率

Partition--分区总结的更多相关文章

  1. mysql Partition(分区)初探

    mysql Partition(分区)初探   表数据量大的时候一般都考虑水平拆分,即所谓的sharding.不过mysql本身具有分区功能,可以实现一定程度 的水平切分.  mysql是具有MERG ...

  2. MySQL partition分区I

    http://blog.csdn.net/binger819623/article/details/5280267 一.        分区的概念二.        为什么使用分区?(优点)三.    ...

  3. MYSQL之水平分区----MySQL partition分区I(5.1)

    一.        分区的概念 二.        为什么使用分区?(优点) 三.        分区类型 四.        子分区 五.        对分区进行修改(增加.删除.分解.合并) 六 ...

  4. kafka之partition分区及副本replica升级

    修改kafka的partition分区 bin/kafka-topics.sh --zookeeper datacollect-2:2181 --alter --partitions 3 --topi ...

  5. mysql的partition分区

    前言:当一个表里面存储的数据特别多的时候,比如单个.myd数据都已经达到10G了的话,必然导致读取的效率很低,这个时候我们可以采用把数据分到几张表里面来解决问题.方式一:通过业务逻辑根据数据的大小通过 ...

  6. Hadoop(17)-MapReduce框架原理-MapReduce流程,Shuffle机制,Partition分区

    MapReduce工作流程 1.准备待处理文件 2.job提交前生成一个处理规划 3.将切片信息job.split,配置信息job.xml和我们自己写的jar包交给yarn 4.yarn根据切片规划计 ...

  7. Hadoop值Partition分区

    分区操作 为什么要分区? 要求将统计结果按照条件输出到不同文件中(分区).比如:将统计结果按 照手机归属地不同省份输出到不同文件中(分区) 默认 partition 分区 /** 源码中:numRed ...

  8. oracle partition 分区

    --范围分区create table person( id int, name varchar2(20), birth date, sex char(2))partition by range (bi ...

  9. MySQL Partition分区扫盲

    MySQL从5..3开始支持Partition,你可以使用如下命令来确认你的版本是否支持Partition: mysql> SHOW VARIABLES LIKE '%partition%'; ...

  10. mysql partition分区

    (转) 自5.1开始对分区(Partition)有支持 = 水平分区(根据列属性按行分)=举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录. === 水 ...

随机推荐

  1. Java-从堆栈常量池解析equals()与==

    一.基本概念 ①JAVA中的基本数据类型(简单类型,内置类型): 字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(do ...

  2. Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK: Split lib_slice_8_apk was defined multiple times. It is possible that this issue is resolved by uninstalling a

    取消:Instant Run就行

  3. 避免IE在ajax请求时,返回json出现下载

    转自:https://blog.csdn.net/z521q1314/article/details/54409048

  4. AngularJS1.6版本中ui-router路由中/#!/的解决方法 - zhuan

    本地编译出的文件可以正常运行,但是服务器编译后到了测试那里路由上就莫名的出现了/#!/,这导致了很多问题. 后来查了下是服务器编译器把AngularJS升级到了1.6版本,而我本地的依旧是1.5. 但 ...

  5. MySQL中函数CONCAT及GROUP_CONCAT函数的使用

    一.CONCAT()函数 CONCAT()函数用于将多个字符串连接成一个字符串. 以数据表[user]作为实例: SELECT USER_NAME, SEX FROM USER WHERE USER ...

  6. iOS多线程编程之NSOperation和NSOperationQueue的使用

    前一篇 <iOS多线程编程之NSThread的使用> 介绍三种多线程编程和NSThread的使用,这篇介绍NSOperation的使用. 使用 NSOperation的方式有两种, 一种是 ...

  7. Python迭代dict的value

    我们已经了解了dict对象本身就是可迭代对象,用 for 循环直接迭代 dict,可以每次拿到dict的一个key. 如果我们希望迭代 dict 对象的value,应该怎么做? dict 对象有一个  ...

  8. Android 定时重复启动弹出窗口。

    本来想着用handlerpostdelay就可以实现,没想到演示后关闭应用居然报错. 后来想到是没有了activity. ((Activity)context).isFinishing() 可以传入c ...

  9. Perl 子程序(函数)

    1.Perl 子程序(函数)Perl 子程序也就是用户定义的函数.Perl 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读. Perl 子程序可以出现在程序的任何地方,语法 ...

  10. preview放大镜

    [preview放大镜] preview有放大镜功能,放`键即可(键盘左上角,1左边的键).