【原创】SQL Server对现有表创建(应用)分区方案

本文介绍了一种在 SQL Server 中使用分区表提高查询效率的方法。主要包括:创建分区函数及分区方案;为分区表建立非聚簇索引,并应用分区方案;最后删除索引保留分区方案。通过实际操作步骤展示如何实现分区表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的方法是:

第一步:创建分区函数、分区方案

第二步:临时对分区表创建一个非聚簇索引(之所以选择非聚簇索引是因为这样不需要对物理节点进行排序,缩短时间,也可以创建聚簇索引),在创建索引的同时应用分区方案

第三步:删除索引(分区方案依然还在)

--创建数据表
CREATE TABLE [dbo].[BizUser](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [Uid] [bigint] NOT NULL,
    [Status] [char](1) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT ('1'),
    [UserType] [int] NOT NULL DEFAULT ((1)),
    [RankNo] [bigint] NOT NULL DEFAULT ((0)),
    [CreatedTime] [datetime] NOT NULL DEFAULT (getdate()),
    [BizId] [varchar](16) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT (''),
    [OSId] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT (''),
 CONSTRAINT [PK_BizUser] PRIMARY KEY NONCLUSTERED 
(
    [ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) 
GO
CREATE CLUSTERED INDEX  IND_UnPartitionBizUser_CreatedTime ON dbo.UnPartitionBizUser
(
    CreatedTime ASC
) 
ON Sch_BizUser_CreatedTime(CreatedTime) --Sch_BizUser_CreatedTime是分区方案
DROP INDEX UnPartitionBizUser.IND_UnPartitionBizUser_CreatedTime 
SELECT      partition_id, object_id, partition_number, rows
FROM        sys.partitions
WHERE       object_id = OBJECT_ID('UnPartitionBizUser')

转载于:https://www.cnblogs.com/siwei1988/archive/2012/05/21/2511655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值