zoukankan      html  css  js  c++  java
  • SQL SERVER2005中将普通表修改为分区表

    前提是你的表上有聚焦索引(一般主键默认就是聚焦索引)

    而且改的时候要把普通索引删除掉(因为改是通过删除聚焦索引实现数据切换的, 所以不删除普通索引会导致普通索引被重建, 而切换到分区表再建立聚焦索引的时候又会导致普通索引重建一次, 所以删除普通索引再重建可以避免两次重建普通索引)


    USE tempdb
    GO

    -- 测试表
    CREATE TABLE dbo.tb(
    id int,
    CONSTRAINT PK_id PRIMARY KEY CLUSTERED(
    id)
    )
    INSERT dbo.tb
    SELECT 1 UNION ALL
    SELECT 10
    GO

    -- 切换为分区表
    -- 分区函数
    CREATE PARTITION FUNCTION PF_test(int)
    AS RANGE LEFT
    FOR VALUES(5)

    -- 分区架构
    CREATE PARTITION SCHEME PS_test
    AS PARTITION PF_test
    ALL TO(
    [PRIMARY])

    -- 切换到分区表
    ALTER TABLE dbo.tb
    DROP CONSTRAINT PK_id
    WITH(
    MOVE TO PS_test(id))

    上面的示例建立测试表 dbo.tb , 并切换到分区表

    切换完成后, 可以查询 dbo.tb, 并检查其执行计划来确定是否使用了分区信息, 以此来确定是否正确切换到了分区表

    最后可以用下面的语句删除测试

    -- 删除测试
    DROP TABLE dbo.tb
    DROP PARTITION SCHEME PS_test
    DROP PARTITION FUNCTION PF_test

    分区键列必须是主键的一部分,联机帮助上有说明的

    是【创建分布式分区视图】中的一句话吧,而不是说创建分区表所用的分区列一定要是主键的一部分
    在(create)创建分区表时,对分区列要求很低,但是便于性能优化,最好是聚集索引的一部分。
    如果alter将已有表变为分区表的话,应该是将分区列加入到聚集索引中
    如果是分区索引:分区列包含在聚集索引/唯一约束/唯一索引的键列中

  • 相关阅读:
    一、服务器控件生命周期
    ArcGIS中的Analysis Tool中的Overlay
    谓词和操作
    联接基础知识SQL中
    修改windows右键菜单
    二、服务器控件的呈现
    连接池
    数据库中的NULL(空值)
    有关在SQL中使用函数
    锁的概述及例子讲解(转贴)
  • 原文地址:https://www.cnblogs.com/kevin1988/p/3573182.html
Copyright © 2011-2022 走看看