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