SQLServer中利用水平分区创建表计算机等级考试

文章作者 100test 发表时间 2010:01:01 08:28:27
来源 100Test.Com百考试题网


  在SQL Server 2000及之前的版本中有分区视图的选项,但它有些局限性,在真正实施前需要考虑的事情太多,在SQL Server 2005及后续的版本中有一个水平分区选项,可以分到1000个分区,数据位置是由SQL Server自动处理的,水平分区是将表中的行分成给定数量的分区的过程,每个分区中列的数量是相同的。
  在一个水平分区表中有多个分区,每个分区对应一个文件组,这样就产生了很多文件组,因此性能也会有所提升,包括I/O性能提升,因为所有分区可以驻扎在一个不同的磁盘上,另一个好处是可以通过备份文件组单独备份一个分区,此外,SQL Server数据库引擎可以智能判断哪个分区上存放了什么数据,如果不止一个分区被访问,那么还可以借助多处理器实现并行数据检索。这种设计也充分利用了分区表的优势。
  在运行下面的脚本之前,先创建几个文件夹:
  D:\PartitionDB\FG1
  D:\PartitionDB\FG2
  D:\PartitionDB\FG3
  接下来运行下面的脚本创建一个新数据库,在三个文件组上创建三个数据文件:
  脚本1:创建一个表,使用三个数据文件
  USE Master
  GO
  CREATE DATABASE DBForPartitioning
  ON PRIMARY
  (NAME=DBForPartitioning_1,
  FILENAME=
  D:\PartitionDB\FG1\DBForPartitioning_1.mdf,
  SIZE=2,
  MAXSIZE=100,
  FILEGROWTH=1 ),
  FILEGROUP FG2
  (NAME = DBForPartitioning_2,
  FILENAME =
  D:\PartitionDB\FG2\DBForPartitioning_2.ndf,
  SIZE = 2,
  MAXSIZE=100,
  FILEGROWTH=1 ),
  FILEGROUP FG3
  (NAME = DBForPartitioning_3,
  FILENAME =
  D:\PartitionDB\FG3\DBForPartitioning_3.ndf,
  SIZE = 2,
  MAXSIZE=100,
  FILEGROWTH=1 )
  GO
  现在我们有一个数据库DBForPartitioning,在三个文件组中创建了三个数据文件,可以使用下面的脚本进行确认:
  脚本2:确定文件组的数量和DBForPartitioning数据库数据文件的数量
  Use DBFOrPartitioning
  GO
  -- Confirm Filegroups
  SELECT name as [File Group Name]
  FROM sys.filegroups
  WHERE type = FG
  GO -- Confirm Datafiles
  SELECT name as [DB File Name],physical_name as [DB File Path]
  FROM sys.database_files
  where type_desc = ROWS
  GO
  规划
  在SQL Server中要实现水平分区表有三个主要的步骤:
  创建分区函数,它将为分割分区中数据建立标准。
  创建分区方案,将创建的分区函数映射到文件组,它和数据在磁盘上的物理存储是相关的。
  创建一个表,将其链接到分区方案,也链接到分区函数,这个时候将会使用到一个分区列。
  在真正开始这三个步骤之前,我们先要对要进行水平分区的表的结构充分地了解,在前面我们已经提到要对将要归档的销售数据表进行水平分区,假设我们的分区归档表结构是SalesArchival(saleTime dateTime, item varchar(50)),数据将要被送到分区的列叫做分区列,它将用在分区函数中作为分区键,分区列很重要,需要满足下面的条件:
  分区列总是只有一个唯一列或计算列,或通过组合多个列持续计算的列。

  编辑特别推荐:

  计算机三级的四个类别看看你适合哪个
  任何数据类型的分区列都可以用作索引键,除了TIMESTAMP数据类型。
  创建分区函数
  在我们的例子中,有2007,2008和2009年的销售数据,因此这里我们创建三个分区表,在分区函数中提供两个分区范围,分区函数将会创建数据边界,我们需要将2009年之前的销售数据全部放到第一个分区中,2009年的销售数据放在第二个分区中,2009年以后的销售数据放在第三个分区中。
  脚本3:创建分区函数
  Use DBForPartitioning
  GO
  CREATE PARTITION FUNCTION salesYearPartitions (datetime)
  AS RANGE RIGHT FOR VALUES ( 2009-01-01, 2010-01-01)
  GO
  函数中提供的分区键是分区表中的主键,分区范围也是基于这一列的,在我们的表中这一列是saleTime,其数据类型是DATETIME,定义的范围可能是RIGHT或LEFT,我们这里使用的范围是RIGHT,RIGHT意味着


相关文章


自己动手改造CPUCooler风扇计算机等级考试
垂死之龙变G龙计算机等级考试
1.7GHzP4电脑性能大曝光计算机等级考试
个人装机按需选择CPU计算机等级考试
SQLServer中利用水平分区创建表计算机等级考试
解决SQLServer记录修改追踪和恢复的方案计算机等级考试
讲解SQL2000的Collection排序规则计算机等级考试
MMC不能打开文件SQLServerEnterpriseManager.MSC的解决方法计算机等级考试
老鸟经验之谈刷坏BIOS后的2种恢复方法计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛