科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何创建SQL Server 2005表分区

如何创建SQL Server 2005表分区

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在SQL Server 2005之前,表分区过程更多地需要数据库管理员参与其中。被分区的表实际上是数据库中的用户表,为模拟一个大型表,它们往往被“统一”起来。

作者:开发者在线 2007年7月24日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

创建一个分区表

首先要定义你用来映射表内分区的分区函数。在下面定义的分区函数中,我将使用三个分区,每个分区对应于SalesHistoryArchive表中的每一种产品类型,这个表将在稍后定义。基本上,这些分区会把SalesHistoryArchive档案表划分成三个不同的表,它们由SQL Server自动维护。

CREATE PARTITION FUNCTION [pf_Product_Partition](VARCHAR(10)) AS RANGE

LEFT

FOR VALUES (N'BigScreen', N'Computer', N'PoolTable')

定义函数的范围决定分区值属于哪一个边界。

RNAGE LEFT:指定分区值将小于或等于在分区函数中定义的值。在上面使用的分区函数中一共建立了四个分区。所有名称小于或等于‘BigScreen’的产品将映射到第一个分区。任何名称大于‘BigScreen’但小于或等于‘Computer’的产品将映射到第二个分区;诸如此类。

RANGE RIGHT:指定分区值将小于在分区函数中定义的值。在上面使用的分区函数中一共建立了四个分区。所有名称小于‘BigScreen’的产品将映射到第一个分区。任何名称大于或等于‘BigScreen’但小于或等于‘Computer’的产品将映射到第二个分区;诸如此类。

建好分区函数后,现在我需要建立分区方案。我将把例子中的所有分区都映射到主文件组中。如果我希望将分区映射到不同的文件组,我会按文件组列表的顺序加入文件组名称。下面是创建分区方案的代码:

CREATE PARTITION SCHEME [ps_Product_Scheme] AS PARTITION

[pf_Product_Partition]

ALL TO ([PRIMARY])

现在我建立需要分区的表,我可以创建SalesHistoryArchive表并在其中加载数据。在CREATE TABLE语句末尾,分区方案使用表中的一个字段名告诉SQL Server如何映射需要分区的表中的数据。查看列表A中的代码样本。

我需要对数据进行一些查询,保证分区正常运行。下面的查询返回SalesHistoryArchive表的所有行,并使用$partition函数指出返回的行属于哪个分区:

SELECT $partition.[pf_Product_Partition](Product), *

FROM SalesHistoryArchive

这个查询返回所有映射到SalesHistoryArchive表中的分区:

SELECT * From sys.partitions

WHERE OBJECT_NAME(object_id) = 'SalesHistoryArchive'

接下来…

在后面的文章中,我将解释如何修改表中的这些分区,从而在其中增加新数据,并非常高效地删除旧数据。

Tim Chapman是肯塔基州路易维尔市一家银行的SQL Server数据库管理员,他有超过7年的IT行业经验。他还通过了微软SQL Server 2000和SQL Server 2005的认证。

责任编辑:张琎

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章