欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

使用Transact-SQL在SQL Server中创建数据库对象

程序员文章站 2022-05-10 18:57:27
...

Adventure Works Cycles 的数据仓库中有几个非常大的表。为改善此数据的存储,您决定对几个跨文件组的表进行分区。这样您就可以控制基础磁盘存储。 先决条件 在开始此实验之前,您必须: 使用 Transact-SQL 在 Microsoft SQL Server 数据库中创建数据库对象

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

  先决条件

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

  使用 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