zoukankan      html  css  js  c++  java
  • 数据表分区

    set statistics time on
    --增加文件组
    alter database MyTest add filegroup ByIdGroup1
    alter database MyTest add filegroup ByIdGroup2
    alter database MyTest add filegroup ByIdGroup3
    alter database MyTest add filegroup ByIdGroup4
    alter database MyTest add filegroup ByIdGroup5
    alter database MyTest add filegroup ByIdGroup6
    alter database MyTest add filegroup ByIdGroup7
    alter database MyTest add filegroup ByIdGroup8
    alter database MyTest add filegroup ByIdGroup9
    alter database MyTest add filegroup ByIdGroup10

    ---给文件组增加文件
    alter database MyTest add file
    (name=N'ById1',filename=N'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAById1.ndf',size=5Mb,filegrowth=5mb) to filegroup ByIdGroup1

    -----创建分区函数和分区方案
    Use [MyTest]
    Go
    begin transaction
    create partition function bgPartitionFun(datetime) as range left for values('2012-01-01','2013-01-01','2014-01-01','2015-01-01')
    create partition scheme bgPartitionSchema as partition bgPartitionFun to([PRIMARY],ByIdGroup1,ByIdGroup3,ByIdGroup4,ByIdGroup5)
    COMMIT TRANSACTION

    ---数据在那个分区
    select $partition.bgPartitionFun('2014-11-21')
    --分区中的数据
    select * from userInfo where $partition.bgPartitionFun(DateSet)=1
    --各个分区中的数据数
    select COUNT(*) a,$partition.bgPartitionFun(DateSet) b from userInfo
    group by $partition.bgPartitionFun(DateSet)
    ---查看各分区和分区函数
     select * from sys.filegroups
     select * from sys.partition_schemes  
     select * from sys.partition_functions
     select * from sys.partition_range_values
      select * from sys.data_spaces ---包含文件组和分区方案
    --分区操作
    --一个分区变两个
    alter partition function bgPartitionFun() split range('2014-01-01')
    --合并分区
    alter partition function bgPartitionFun() merge range('2014-01-01')
    --把分区表中第一分区的数据复制到普通表
    alter table userInfo switch partition 1 to tableName
    --把普通表中的数据复制到分区表第一分区
    alter table tableName switch to userInfo partition 1

    --删除分区函数bgPartitionFun
    drop partition function bgPartitionFun
    --创建分区索引
    create clustered index indexName on tableName(columnName)
    on partitionSchemeName(partitionColumnName)
    ---查看分区表的相关信息
    SELECT
        SchemaName = S.name,
        TableName = TB.name,
        PartitionScheme = PS.name,
        PartitionFunction = PF.name,
        PartitionFunctionRangeType = CASE
                WHEN boundary_value_on_right = 0 THEN 'LEFT'
                ELSE 'RIGHT' END,
        PartitionFunctionFanout = PF.fanout,
        SchemaID = S.schema_id,
        ObjectID = TB.object_id,
        PartitionSchemeID = PS.data_space_id,
        PartitionFunctionID = PS.function_id
    FROM sys.schemas S
        INNER JOIN sys.tables TB
            ON S.schema_id = TB.schema_id
        INNER JOIN sys.indexes IDX
            on TB.object_id = IDX.object_id
                AND IDX.index_id < 2
        INNER JOIN sys.partition_schemes PS
            ON PS.data_space_id = IDX.data_space_id
        INNER JOIN sys.partition_functions PF
            ON PS.function_id = PF.function_id



  • 相关阅读:
    mysql数据库小常识
    CSP.ac #61乘积求和
    CSP.ac #60
    CSP.ac低仿机器人(T1-1)
    题解:swj社会摇基础第一课
    题解:T103180 しろは的军训列队
    关 于 篮 球
    关 于 自 恋
    题解:T103342 Problem A. 最近公共祖先
    关 于 匀 变 速 直 线 运 动 的 推 论
  • 原文地址:https://www.cnblogs.com/lorking/p/4110124.html
Copyright © 2011-2022 走看看