技术开发 频道

详解SQL Server分区数据表的实现与管理

  【IT168 技术文档】

  1. 实现分区数据表

  作为AdventureWorks2008 的数据库管理员,您发现Orders 数据表在删除旧数据的同时要进行OLTP数据操作,从而严重制约了性能,并且该数据表变得越来越庞大。通常情况下,用户只需要访问到该表中近一年的数据,但在新数据插入时以及索引重建时,有将近3个小时的时间响应缓慢。因此,我们决定通过分区功能来提高性能。

  在此实验场景中,数据涵盖了2003年3季度 (OrderDate >= Jul 01, 2003) 到2004年2季度 (OrderDate < Jul 01, 2004)。首先我们将配置分区数据表的实验场景,并创建分区函数以及分区方案。

  打开Partitioning Scripts 解决方案,其中包括此实验所需的10个脚本

  1. 在Windows 任务栏中,依次点击Start | All Programs | Microsoft SQL Server 2008 | SQL Server Management Studio.

  2. 当 SQL Server Management Studio 打开以后会提示进行连接。在Connect to Server 对话框中,输入如下连接属性并点击Connect.

  Server type: Database Engine

  Server name: (local)\SQLDEV01

  Authentication: Windows Authentication

  3. 依次点击File | Open | Project/Solution 然后打开C:\AlwaysOn Labs\Partitioning Lab 文件夹中的PartitioningScripts.ssmssln

  4. 在SQL Server Management Studio中如果Solution Explorer 窗口没有打开,请在View 下拉菜单中选择Solution Explorer

  5. 在Solution Explorer 窗口中可以看到1个解决方案中有3个项目。解决方案名为 ‘PartitioningScripts’ 而3个项目分别叫做Lab Scripts, Whitepaper Scripts 以及Xtra-ILLExtendedExercises. 此实验中我们将主要使用Lab Scripts

  为分区数据表创建文件和文件组

  1. 在Lab Scripts 项目中,双击Script1 – AddFilegroups.sql

  2. 点击Query 菜单,确保选中SQLCMD Mode

  3. 在脚本中选中并执行如下语句,创建实验过程中所需的文件夹:

  !!mkdir C:\AdventureWorks2008Test . . .

  4. 在脚本的第30-51行,我们将创建AdventureWorks2008 数据库的一个副本,并将其命名为AdventureWorks2008Test. 执行如下语句:

  BACKUP DATABASE AdventureWorks2008

  
TO DISK = N'C:\Ad...Original.BAK'

  
WITH INIT, STATS = 10

  
GO

  
RESTORE DATABASE [AdventureWorks2008Test]

  
FROM DISK = N'C:\Ad...Original.BAK'

  
WITH FILE = 1,

  MOVE N
'AdventureWorks2008_Data'

  
TO N'C:\...TestData.mdf'

  , MOVE N
'AdventureWorks2008_Log'

  
TO N'C:\... TestLog.ldf'

  , MOVE N
'FileStreamDocuments'

  
TO N'C:\...FileStream.Documents'

  , NOUNLOAD, STATS
= 10

  
GO

 

  新数据库创建完成之后,我们接下来要为其创建文件和文件组。此实验中我们将根据文件组所存放数据的时间来对其进行命名。

0
相关文章