zoukankan      html  css  js  c++  java
  • SQL Server单表已700w+将普通表转换成分区表

    最近项目中,某个表数据量爆发时增长,单表已700w+,读写性能急剧下降,所以考虑加入分区表以解燃眉之急,后续还是要分表分库,当然这是后话。下面简要说一下将普通表转为分区表的步骤。
     
    一、创建文件组
    打开SQL Server Management Studio,在相关数据库项右键属性,进入数据库属性页,选择文件组选项SQL <wbr>Server <wbr>2008将普通表转换成分区表,添加所要的文件组 SQL <wbr>Server <wbr>2008将普通表转换成分区表
     
    二、创建文件
    数据库属性页,选择文件选项SQL <wbr>Server <wbr>2008将普通表转换成分区表,添加文件 。
    添加文件时,需要选择上一步添加的对应文件组
    SQL <wbr>Server <wbr>2008将普通表转换成分区表
    三、删除普通表中的聚集索引,因为分区表是以某个字段为分区条件,所以,除了这个字段以外不能再存在其他聚集索引的。要想将普通表转换成分区表,就必须要先删除原表中聚集索引,然后再创建一个新的聚集索引,以此聚集索引中创建分区方案
    1. --删掉主键  
    2. ALTER TABLE testTab DROP constraint PK_testTab  
    3. --创建主键,但不设为聚集索引  
    4. ALTER TABLE testTab ADD CONSTRAINT PK_testTab  PRIMARY KEY NONCLUSTERED  
    5. (  
    6.     [ID] ASC  
    7. ) ON [PRIMARY]  
     
    四、创建一个分区函数
     
    1. --创建一个分区函数
    2. CREATE PARTITION FUNCTION part_month_func_range_test(datetime)  
    3. AS RANGE RIGHT FOR VALUES (
    4. '2017-7-1 00:00:00',
    5. '2017-8-1 00:00:00',
    6. '2017-8-1 00:00:00',
    7. '2017-9-1 00:00:00',
    8. '2017-10-1 00:00:00',
    9. '2017-11-1 00:00:00',
    10. )  
     
    五、创建一个分区方案
     
    1. CREATE PARTITION SCHEME partschSale  
    2. AS PARTITION part_month_func_range_test
    3. TO (  
    4.   FC201706,  
    5.   FC201707,  
    6.   FC201708, 
    7.   FC201709,  
    8.   FC201710,
    9.   FC201711,
    10.   FC201712
    11. )  
     
    注意:方案中文件组比函数中要多一个
     
    六、按分区方案创建聚集索引
  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/8516058.html
Copyright © 2011-2022 走看看