21-把已存在的表整改为分区表
一、注意点
1、将一个已经存在数据的表转换为分区表,要先看看这个表是否有聚合索引(主键),有的话要删除掉.
2、这个就是通过给表添加聚集索引(使用分区架构的索引)来使表达到分区的效果。
3、可以不需要那么多文件组和文件,分区架构里可以使用同一个文件组[PRIMARY]。
4、做分区的列可以有重复数据,只是把重复的数据放到同一个分区而已。
5、做了分区的表也可以直接删除。
6、分区方案和分区函数的位置
7、分区表依赖分区架构,分区架构依赖分区函数。
二、操作步骤
--1.创建分区函数
create partition function testT1PartFun(int)
as range right
for values(10000,20000,30000,40000,50000,60000,70000,80000,90000,100000)
--2.创建分区方案
create partition scheme testT1PartScheme
as partition testT1PartFun
to ([PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY])
--3.创建使用分区方案的的聚集索引
create clustered index ix_col1 on T1 (Col1) on testT1PartScheme(Col1)
--4.查看指定物理分区上的数据
select * from test.dbo.T1 where $partition.testT1PartFun(Col1) =3
--5.查看每个物理分区上的数据
select $partition.testT1PartFun(Col1) as partitionNum,count(*) as cnt from test.dbo.T1
group by $partition.testT1PartFun(Col1)
--6.查看所有的分区id和使用的文件组的id
select * from sys.destination_data_spaces
--7.查看所有的文件组
select * from sys.filegroups
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构