>  기사  >  데이터 베이스  >  使用Transact-SQL在SQL Server中创建数据库对象

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

WBOY
WBOY원래의
2016-06-07 17:53:451539검색

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
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.