• Partition--分区总结


     

    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等操作的效率

  • 相关阅读:
    win10下安装Anaconda3+keras+tensorflow
    Ubuntu 下安装安装 Anaconda3 与Keras
    ESP32开发之Windows开发环境
    LinuxE2系统刷机后OSCAM安装与读卡器设置
    安德鲁1.2Ku全下125C波(CCTV4K除外)
    安德鲁1.2Ku使用感受
    ubuntu10.04换官方源
    密室逃脱游戏解决方案-森林迷宫-炸弹人等
    Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间等
    ESP32 做Web服务器 http Server步骤
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3520448.html
Copyright © 2020-2023  润新知