表分区功能 - 2008

时间:2013-04-12 07:48:15

标签: sql-server partitioning

我创建了一个新的数据库,其辅助文件为fallows:

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 )

在此之后,我根据分区存档了所有数据,现在发送了包含100万条记录的sendoray文件。

enter code here

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

2 个答案:

答案 0 :(得分:0)

ALTER PARTITION FUNCTION partition_function_name()
{ 
    SPLIT RANGE ( boundary_value )
  | MERGE RANGE ( boundary_value ) 
} [ ; ]

更多

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

答案 1 :(得分:0)

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

  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

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