技术开发 频道

对SQL Server跨文件组的表进行分区

  【IT168 技术文档】目标

  通过这个动手实验室,您可以了解到:

  创建已分区表。

  创建分区对齐索引视图。

  实现可调窗口应用场景将数据切换到存档表。

  先决条件

  在开始此实验之前,您必须:

  使用 Transact-SQL 在 Microsoft® SQL Server® 数据库中创建数据库对象的经验。

  实验设置

  实验场景

  Adventure Works Cycles 的数据仓库中有几个非常大的表。为改善此数据的存储,您决定对几个跨文件组的表进行分区。这样您就可以控制基础磁盘存储。

  对几个跨文件组的表进行分区时,您希望增添功能并改善您的解决方案的性能。您决定基于订单日期分配数据,而不是随意地跨文件组分割数据。因为您只修改包含最新数据的文件组,所以这样会提高备份和还原的速度。此外,您还可以定期对文件组进行存档,以将历史数据移动到另一个表中,使活动表的大小保持在可管理的范围内。

  一. 创建已分区表

  在本练习中,您将创建一个分区数据仓库事实数据表。非常大的表经常需要跨几个磁盘卷存储数据。SQL Server 表无法放置在特定文件中。但是,文件组可以放置在文件中,而表可以分配给文件组。这样您就可以控制 SQL Server 中非常大的表中的数据的存储。而且,如果表跨几个文件组,定义哪些数据放置在哪个文件组中会非常有用。分区函数通过基于特定列中的值沿水平方向拆分表提供了此功能。

  注意: 您可以复制此练习中所用的脚本,这些脚本位于 C:\SQLHOLS\Partitioning\Solution\Partition Processing 文件夹中的 Partition Processing.ssmssln 解决方案中。

  新建 SQL Server 脚本项目

  1. 从开始->所有程序菜单中的 Microsoft SQL Server 2008 程序组中启动

  SQL Server Management Studio。

  2. 在连接到服务器对话框中,验证下列设置无误后单击连接:

   服务器类型:数据库引擎

   服务器名称:(local)

   身份验证:Windows 身份验证

  3. 在文件菜单上,指向新建,然后单击项目。

  4. 确保选中 SQL Server 脚本,然后输入下列设置:

   名称:Partition Processing

   位置:C:\SQLHOLs\Partitioning\Starter

   解决方案名称:Partition Processing

  5. 确保选中创建解决方案的目录,然后单击确定。

  6. 在解决方案资源管理器中,右键单击连接,然后单击新建连接。

  7. 在连接到服务器对话框中,验证下列设置无误后单击确定:

   服务器名称:(local)

   身份验证:Windows 身份验证

  创建文件组和文件

  1. 在解决方案资源管理器中,右键单击在前面步骤中添加的连接,然后单击新建查询。

  2. 右键单击 SQLQuery1.sql,然后单击重命名。

  3. 键入 Files and Filegroups.sql,然后按 Enter。

  4. 键入下面的代码(每个 FILENAME 参数都应单占一行)。

 USE [master]

  
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2001]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2002]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2003]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2004]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILE

  (NAME
= N'AdventureWorksDW_Data2001',

  FILENAME
= N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2001.ndf',

  SIZE
= 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2001]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILE

  (NAME
= N'AdventureWorksDW_Data2002',

  FILENAME
= N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2002.ndf',

  SIZE
= 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2002]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILE

  (NAME
= N'AdventureWorksDW_Data2003',

  FILENAME
= N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2003.ndf',

  SIZE
= 2048KB , FILEGROWTH = 1024KB) TO FILEGROUP [fg2003]

  
GO

  
ALTER DATABASE [AdventureWorksDW] ADD FILE

  (NAME
= N'AdventureWorksDW_Data2004',

  FILENAME
= N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2004.ndf',

  SIZE
= 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2004]

  
GO

  5. 单击执行。

0
相关文章