如果仅在SQL Server中创建主文件组中的所有分区,分区是否有益

我是SQL Server新手。我正在尝试实现分区。但我有一个问题:一定要有不同的分区组吗?

或者,如果我只有一个分区组"主分区",这是默认分区组,该怎么办?在分区模式中,我只指定主文件组。

CREATE PARTITION SCHEME [Date] 
AS PARTITION [PF_FMvnt_Valuation_Date_SID] 
TO ([PRIMARY], [PRIMARY], [PRIMARY], 
    [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], 
    [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], 
    [PRIMARY], [PRIMARY], [PRIMARY])
GO

CREATE PARTITION FUNCTION [Date](bigint) 
AS RANGE LEFT FOR VALUES (20170228, 20170331, 20170430, 
                          20170531, 20170630, 20170731, 
                          20170831, 20170930, 20171031, 
                          20171130, 20171231, 20180131, 
                          this, 28)
通过实现此功能,我将获得12个分区,数据将填充到各自的分区中。

但这会提高并行度方面的性能吗?

如果您觉得这个问题太天真,很抱歉。


解决方案

通常您分区有两个原因。能够一口气删除和/或添加大量数据,或者提高性能。组织可能希望将六周的当前数据保存在一个非常大的表中。每个周末,它们可能会删除最旧的分区,并为新的一周数据创建一个新的分区。因为这主要是在元数据更改时完成的,所以可以在几秒钟内删除和/或添加分区的数据(可能是10-20 GB的数据)。

第二个原因是将数据放在单独的物理卷上。因此,如果您正在搜索特定的一周,则只搜索该周的数据。如果您将整个表放在一个卷上(因此在一个驱动器或一组驱动器上),您不会在搜索方面获得很大的性能改进,但您可能会发现添加和/或删除分区非常快。

相关文章