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. )  
     
    注意:方案中文件组比函数中要多一个
     
    六、按分区方案创建聚集索引
  • 相关阅读:
    前台调用后台方法循环绑定数据到前台
    禁用绑定在Repeater的控件
    Repeater,ItemDataBound事件,获取绑定列的值,给指定列添加js方法
    Oracle定时值执行存储过程
    A页面跳到B页面,B页面获取A页面的URL
    Jquery获取用户控件页面中控件的值
    Web页面获取用户控件页面中服务器控件的值
    springmvc静态资源;mvc:default-servlet-handler后Controller失效
    创建 Angular 8.0 项目
    window location跳转
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/8516058.html
Copyright © 2011-2022 走看看