************** SQL Server 分区表的问题 *******************
在没有分区表以前,为了减少单表的记录数,我们将相同的表按照 年份 水平拆分到不同的表中,如销售记录表 Sales 拆分成类似这样
Sales_2020,Sales_2021,Sales_2022
当通过编程语言查询时,首先要确定需要查询的目标表名
当有了分区表后 假设有以下的表结构
CREATE TABLE [dbo].[test] (
[id] int DEFAULT '' NOT NULL,
[create_datetime] datetime NOT NULL,
[create_year] AS (datepart(year,[create_datetime])) PERSISTED NULL ---- 有意冗余
)
ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ix_test____create_year]
ON [dbo].[test] (
[create_year] ASC
)
列 create_datetime 应用了按 年 划分的分区函数
请问当使用以下查询时
select * from test where create_year=2020;
查询引擎会不会主动到分区是 2020 的逻辑表中去查询? 还是说要改进SQL语句才行。多谢多谢