zoukankan      html  css  js  c++  java
  • SQL Server 分区表的创建方法与管理

    背景知识:

                分区表、可以把表中的数据按范围保存到不同的文件组中。

               举个例子吧:

                              2014年以前的数据保存到文件组A

                              2014~2015的数据保存到文件组B

                              2015年以后的数据保存到文件组C

                好处:

                       1、提高IO性能 --- 文件组中的文件可以位于不同的磁盘,多磁盘协同工作,提升性能。

                       2、方便管理 --- 备份方面为管理提供了更多的选择,数据归档方便。

    前期准备:添加文件组与文件

                 alter database Studio
                 add filegroup FG1;
                 go


                 alter database Studio
                 add filegroup FG2;
                 go


                 alter database Studio
                 add filegroup FG3;
                 go

                 alter database Studio
                 add file(name = FG1_File,filename='E:DBFG1_File.ndf');
                 go


                 alter database Studio
                 add file(name = FG2_File,filename='E:DBFG2_File.ndf');
                 go


                 alter database Studio
                 add file(name = FG3_File,filename='E:DBFG3_File.ndf');
                 go

                       

    操作 1、

             创建分区表,分如下几步

    第一步 、

              创建分区函数:

                               它用来把表从逻辑上分成不同的几份   如: 0~2014,2014~2015,2015~....

                               create partition function pf_for_myTable(datetime)
                               as range left
                               for values('2014-01-01','2015-01-01');
                               go  -- 把表从逻辑上分成三份。或是说三个不同的逻辑分区 

                               

    第二步:

             创建分区方案、它主要是把表的逻辑分区与数据库中的文件组绑定。比如说:第一个分区保存到FG1,第二个分区保存到FG2,第三个分区保存到FG3

             create partition scheme ps_for_myTable
             as partition pf_for_myTable
             to (FG1,FG2,FG3);
             go

             

    第三步:

             建表

             create table myTable2(DT datetime, DataValue nvarchar(30))
             on ps_for_myTable(DT);

    操作 2、

             查看指定数据所在的分区

             $partition.partition_function_name(value);

             select $partition.pf_for_myTable('2014-10-04');

             

    操作 3、

             为表添加新的分区。

             第一步:修改分区方案

                      指定下一个分区使用的文件组。

                      alter partition scheme ps_for_myTable
                      next used [primary];
                      go

            第二步:修改分区函数

                       alter partition function pf_for_myTable() -- 看到没有这个没有加datatime 加了就错了
                       split range ('2016-01-01');
                       go

    操作 4、

              移除分区

              第一步:

                       alter partition function pf_for_myTable()
                       merge range('2016-01-01');
                       go

    操作 5、

             把分区移动到不同的表

                                        前期准备工作

                                       create table myTableHistory(DT datetime, DataValue nvarchar(30));
                                       go -- 两个表的定义要完全一样,分不分区的没有关系

            第一步:

                     移动

                     alter table myTable2 switch partition 1

                     to myTableHistory;
                     go

                    

                     它的基本语法如下:

                     alter table source_table_name switch  [partition partition_number]

                     to [schema.] target_table_name [partition partition_number]

    总结:

          

           

             

                               

              

  • 相关阅读:
    学习 Apache FileMatchs 规则
    yii2 vendor/bower/jquery/dist not exist
    Ionic POST提交使用普通表单提交数据
    Yii2 在php 7.2环境下运行,提示 Cannot use ‘Object’ as class name
    Yii2 使用 npm 安装的包
    phpStorm 激活
    Chrome DNS_PROBE_FINISHED_NXDOMAIN
    Yii2 中使用ts
    Js 对 浏览器 的 URL的操作
    js 编码、解码与asp.net 编码、解码
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4005904.html
Copyright © 2011-2022 走看看