0

我已经创建了一个带有辅助文件的新数据库作为休耕:

CREATE DATABASE XYZ_Dimensions_DW
ON PRIMARY
(NAME='DBForPartitioning_1',
FILENAME=
'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\XYZ_Dimensions_DW_1.mdf',
SIZE = 20,
MAXSIZE=1048576,
FILEGROWTH=20 ),
FILEGROUP FG3
(NAME = 'DBForPartitioning_2',
FILENAME =
'F:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\XYZ_Dimensions_DW_2.ndf',
SIZE = 20,
MAXSIZE=1048576,
FILEGROWTH=20 )
GO

我已经创建了分区功能作为休闲:

CREATE PARTITION FUNCTION salesYearPartitions (int)
AS RANGE RIGHT FOR VALUES (5208);

CREATE PARTITION SCHEME salesPartitionScheme
AS PARTITION salesYearPartitions
TO ([PRIMARY], FG )

在此之后,我根据分区归档了所有数据,现在 sendoray 文件有 100 万条记录。

enter code here

在这里,我的问题是如何将我的分区功能从 5208 更改为 5000。请帮助我。

4

2 回答 2

0

您必须使用命令来管理分区边界:SPLIT一个分区和MERGE两个相邻的分区。要更改边界,您有 2 个选项:

  1. 如果你没有数据,那么

    ALTER PARTITION FUNCTION partition_function_name() MERGE RANGE 5208 ALTER PARTITION FUNCTION partition_function_name() SPLIT RANGE 5000

  2. 如果您加载了大量数据,那么以其他方式执行会更快:

    ALTER PARTITION FUNCTION partition_function_name() SPLIT RANGE 5000 ALTER PARTITION FUNCTION partition_function_name() MERGE RANGE 5208

产生差异的原因是,当您拆分分区时,SQL Server 会读取并分离正在拆分的分区中的所有数据。因此,它不会拆分完整的数据集,而是仅拆分填充数据集的一半。

于 2013-05-29T21:27:28.573 回答
0
ALTER PARTITION FUNCTION partition_function_name()
{ 
    SPLIT RANGE ( boundary_value )
  | MERGE RANGE ( boundary_value ) 
} [ ; ]

更多在这里

http://technet.microsoft.com/en-us/library/ms186307.aspx

于 2013-04-12T07:52:39.177 回答