• 表分区


    --第一步:创建数据库文件组。注:可以到数据库属性中直接设置文件组
    alter database MyDatabase add filegroup Group01
    alter database MyDatabase add filegroup Group02
    alter database MyDatabase add filegroup Group03
    
    
    
    
    --第二步:创建数据库文件到文件组中。注:可以点击数据库属性在文件里面添加
    
    alter database MyDataBase add file(name=N'file01',filename=N'D:SqlServer2012Groupmember01.ndf',size=5Mb,filegrowth=5Mb) to filegroup [Group01];
    alter database MyDataBase add file(name=N'file02',filename=N'D:SqlServer2012Groupmember02.ndf',size=5Mb,filegrowth=5Mb) to filegroup [Group02];
    alter database MyDataBase add file(name=N'file03',filename=N'D:SqlServer2012Groupmember03.ndf',size=5Mb,filegrowth=5Mb) to filegroup [Group03];
    --.....
    
    
    
    
    --第三步:右击某个表,选择存储=>创建分区=>选择某个字段=>下一步选择分区函数(新建)=>下一步选择分区方案=>下一步创建分区向导
    
    --左边界:讲某个临界值划分给上一个分区;右边界:讲临界值划分给下一个分区
    
    --注:选择某个字段是按照此字段进行数据划分,比如:主键字段1~100000,100001~200000的数据量,或者可以按时间间隔进行划分
    
    USE [MyDatabase]
    GO
    BEGIN TRANSACTION
    CREATE PARTITION FUNCTION [MyPartFun01](int) AS RANGE LEFT FOR VALUES (N'100000', N'200000', N'300000') --创建分区函数,表示每个分区应该存放多少数据
    
    CREATE PARTITION SCHEME [MyPartScheme01] AS PARTITION [MyPartFun01] TO ([PRIMARY], [Group01], [Group02], [Group03]) --给表创建分区方案,按照分区函数将分好的数据放到对应的文件组中
    
    ALTER TABLE [dbo].[Student] DROP CONSTRAINT [PK_Student] --删除原先的约束[PK_Student]
    
    ALTER TABLE [dbo].[Student] ADD  CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED  --新增约束:主键和索引为[StuId]字段,且在[MyPartScheme01]分区方案上同样执行
    (
        [StuId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [MyPartScheme01]([StuId])
    
    COMMIT TRANSACTION
    
    
    
    
    --删除分区方案和函数
    drop partition scheme [MyPartScheme01];
    drop partition function [MyPartFun01];
    
    
    
    
    --分区拆分
    alter partition function [MyPartFun01]()
    split range(N'150000')  --将第二个分区拆为2个分区,因为第二个分区数据为10w~20w,15w包含在其中
    
    --合并分区
    alter partition function [MyPartFun01]()
    merge range(N'1500000')  --将第二第三分区合并,去掉其中一个边界值
    
    
    
    
    --创建表时指定文件组
    create table <表名> (
      <列名>
    )on <文件组名>
    
    
    
    
    
    --将Student分区表中的第一分区数据复制到普通表中
    alter table Student switch partition 1 to <普通表名>
    
    --将普通表中的数据复制到bigorder分区表中的第一分区
    alter table <普通表名> switch to Student partition 1 
  • 相关阅读:
    hdu2037 今年暑假不AC[贪心][区间调度问题]
    Features Track[STL map]
    Characters with Hash[签到题]
    hdu2094产生冠军[STL set]
    2018ECNA Difference[时空复杂度]
    hdu1276士兵队列训练问题[简单STL list]
    20190815网络与信息安全领域专项赛线上赛misc WriteUp
    hdu1873 看病要排队[优先队列]
    Pygame 贪吃蛇
    Windows安装Python3 curses模块
  • 原文地址:https://www.cnblogs.com/AlexOneBlogs/p/8058421.html
Copyright © 2020-2023  润新知