关于分区索引对齐
一直在群里听到大牛们说一定要”分区索引对齐“,不然交换分区会失败。
对于“分区索引对齐”这个关键词,在MSDN的技术文档里, 终于找到了解答:
索引要与其基表对齐,并不需要与基表参与相同的命名分区函数。但是,索引和基表的分区函数在实质上必须相同,
即:
1) 分区函数的参数具有相同的数据类型;
2) 分区函数定义了相同数目的分区;
3) 分区函数为分区定义了相同的边界值。
其实这样有两种理解:
1) 索引(特指非聚集索引)与表使用同一个分区方案。
2) 索引(特指非聚集索引)与表使用实质上相同的分区方案。
关于“实质上相同”的描述,到底哪些可以不同呢?
1)当然分区函数,分区方案的名字可以不同
2)索引使用的分区方案可以使用别的文件组。(这其实才是使用不一样名字的分区方案和函数真正的用意,使得索引与表所使用的文件组分开)
注意点: 索引所使用的分区字段必须与表所使用的分区字段相同。
例如:表分区是基于sysdate字段来分区的。 即便你的索引是基于workdate,itemco,stco来创建的,你所使用的分区字段也必须是基于sysdate。
--创建T_SALES表 CREATE TABLE [dbo].[T_SALES]( [sysdate] [date] NOT NULL, [companyco] [char](2) NOT NULL, [stco] [char](4) NOT NULL, [workdate] [date] NOT NULL, [custype] [char](2) NOT NULL, [itemco] [char](6) NOT NULL, [eanco] [varchar](18) NOT NULL, [divco] [char](2) NULL, [deptco] [char](2) NULL, [classco] [char](3) NULL, [subclassco] [char](2) NULL, [salesprice] [money] NULL, [salesprice_nt] [money] NULL, [salescost] [money] NULL, [salescost_nt] [money] NULL, [salescnt] [int] NULL, [cuscnt] [int] NULL, [cost] [money] NULL, [downprice] [money] NULL, [downcnt] [int] NULL, [binkbn] [char](1) NULL, [areaco] [varchar](2) NULL, [insuser] [varchar](20) NULL, [insdate] [datetime] NULL, [upduser] [varchar](20) NULL, [upddate] [datetime] NULL, ) ON [SCH_SALES_SYSDATE]([SYSDATE]) GO --创建聚集索引 ALTER TABLE [dbo].[T_SALES] ADD CONSTRAINT [PK_SALES_SYSDATE] PRIMARY KEY CLUSTERED ( [sysdate] ASC, [itemco] ASC, [stco] ASC, [companyco] ASC, [workdate] ASC, [custype] ASC ) WITH( PAD_INDEX = ON, FILLFACTOR = 100, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [SCH_SALES_SYSDATE]([SYSDATE]) GO --创建索引 CREATE NONCLUSTERED INDEX [IDX_SALES_WORKDATE] ON [dbo].[T_SALES] ( [workdate] ASC, [itemco] ASC, [stco] ASC, [companyco] ASC, [workdate] ASC, [custype] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [SCH_SALES_IDX_SYSDATE]([SYSDATE]) GO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南