使用Transact-SQL在SQL Server中创建数据库对象
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 参数都应单占一行)。
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
推荐阅读
-
在SQL Server 2005中创建CLR存储过程的详细介绍
-
在SQL Server 2005中创建CLR存储过程的详细介绍
-
在asp.net中操作sql server数据库的一些小技巧
-
在sqlserver2005中安装sql server 2000的示例数据库northwind的方法
-
在程序中压缩sql server2000的数据库备份文件的代码
-
在SQL Server数据库中为标识(IDENTITY)列插入显式值
-
在SQL Server和Oracle中创建job
-
SQL Server 2008 数据库中创建只读用户的方法
-
在centos7.x环境中SQL Server附加数据库
-
TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用