人无信不立/2008-04-26 22:30

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

在SqlServer2005中,建表时是默认把所有的表都保存在PRIMARY默认表空间中的。当数据库中表很多,并且数据量很大时,会导致数据库性能严重下降,有必要将一些大的表放到不同的表空间中去。
主要的步骤如下所示:
1、建立表空间(数据文件)
USE [master]
GO
ALTER DATABASE [TestDB] ADD FILEGROUP [Log1]
GO
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]
GO
首先是在TestDB上建立文件组Log1
然后在文件组Log1上加入文件Log1,初始值3M

2、建表时使用这个表空间
USE [TestDB]
GO
CREATE TABLE [dbo].[Log](
    [aa] [nchar](
10),
    [bb] [nchar](
10)
) ON [Log1]

3、建索引时使用不同的表空间
create index IX_LOG_BB on dbo.log(bb) on [Log2]
一般对大表的操作,最好把表和索引放在不同的表空间中,提升查询等的性能

另外:
对一些特别大的
表,还需要将一张表的数据根据条件放到不同的表空间中去,这就需要再进行表分区的操作。
不过,只有在SQL Server Enterprise Edition 中才能使用表分区
posted @ 2007-08-13 10:50 永春 阅读(2172) 评论(12)  编辑 收藏 所属分类: 数据库

  回复  引用    
#1楼 2007-08-13 10:58 | 成人小说 [未注册用户]
不错,学习了!!!
  回复  引用  查看    
#2楼 2007-08-13 11:37 | 补丁      
原来是这么回事...
问一句,多少个数据表算是"很大"了?
  回复  引用  查看    
#3楼 [楼主]2007-08-13 12:36 | GSpring      
@补丁
主要是看数据表中的数据多不多。

比如a表有10万条数据,b表有100万条,那么最好把a和b放在不同的表空间中
  回复  引用  查看    
#4楼 2007-08-13 12:38 | Cheney Shue      
SQL Server中叫文件组,Oracle中才叫表空间
  回复  引用  查看    
#5楼 [楼主]2007-08-13 12:44 | GSpring      
@Cheney Shue
是的,是叫文件组。

不过我原来用Oracle的,觉得表空间更形象一点-_-
  回复  引用    
#6楼 2007-08-13 20:35 | Jeff Yang [未注册用户]
嗯,以后注意了
  回复  引用    
#7楼 2007-08-15 13:21 | shen126 [未注册用户]
这个,是不是需要多硬盘才能起作用啊?
  回复  引用    
#8楼 2007-08-15 13:30 | GSpring [未注册用户]
@shen126
如果使用多硬盘的话当然效果更好
  回复  引用    
#9楼 2007-08-15 15:24 | shen126 [未注册用户]
我的意思是:如果不是多磁盘,是不是没效果啊?
  回复  引用    
#10楼 2007-08-15 16:00 | GSpring [未注册用户]
效果当然也有。
  回复  引用    
#11楼 2007-08-15 16:14 | shen126 [未注册用户]
我理解多个磁盘,多磁头并发读取不同文件内容能提高性能,但是如果只有一个磁盘,磁头一次只能读取一块内容,那哪里来的性能提升呢?
  回复  引用  查看    
#12楼 [楼主]2007-08-15 17:22 | GSpring      
@shen126
微软的说法是最好放在不同的磁盘上。

同时:
如果您有多个 CPU,SQL Server 则可以并行处理多个分区,从而大大缩短处理大量复杂报表和分析的总体时间。

我猜测:
单个CPU,也可以在不同的时间片处理不同的表空间。
另外,如果单个文件很大的话,windows对文件的大小也有限制的

当然:如果数据量很大的话,系统还是有多个磁盘比较好

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-13 10:55 编辑过


相关链接: