天天看点

Sql Server2005不同的表使用不同的表空间

在SqlServer2005中,建表时是默认把所有的表都保存在PRIMARY默认表空间中的。当数据库中表很多,并且数据量很大时,会导致数据库性能严重下降,有必要将一些大的表放到不同的表空间中去。

主要的步骤如下所示:

1、建立表空间(数据文件)

Sql Server2005不同的表使用不同的表空间

USE [master]

Sql Server2005不同的表使用不同的表空间

GO

Sql Server2005不同的表使用不同的表空间

ALTER DATABASE [TestDB] ADD FILEGROUP [Log1]

Sql Server2005不同的表使用不同的表空间
Sql Server2005不同的表使用不同的表空间

ALTER DATABASE [TestDB] ADD FILE ( NAME = N'Log1', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Log1.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) TO FILEGROUP [Log1]

Sql Server2005不同的表使用不同的表空间

首先是在TestDB上建立文件组Log1

然后在文件组Log1上加入文件Log1,初始值3M

2、建表时使用这个表空间

Sql Server2005不同的表使用不同的表空间

USE [TestDB]

Sql Server2005不同的表使用不同的表空间
Sql Server2005不同的表使用不同的表空间

CREATE TABLE [dbo].[Log](

Sql Server2005不同的表使用不同的表空间

    [aa] [nchar](10),

Sql Server2005不同的表使用不同的表空间

    [bb] [nchar](10)

Sql Server2005不同的表使用不同的表空间

) ON [Log1]

3、建索引时使用不同的表空间

Sql Server2005不同的表使用不同的表空间

create index IX_LOG_BB on dbo.log(bb) on [Log2]

一般对大表的操作,最好把表和索引放在不同的表空间中,提升查询等的性能

另外:

对一些特别大的表,还需要将一张表的数据根据条件放到不同的表空间中去,这就需要再进行表分区的操作。

不过,只有在SQL Server Enterprise Edition 中才能使用表分区

    本文转自永春博客园博客,原文链接:<b>http://www.cnblogs.com/firstyi/archive/2007/08/13/853376.html</b>,如需转载请自行联系原作者