SQL Server 2000 数据库有三种类型的文件:
主要数据文件
主要数据文件是数据库的起点,指向数据库中文件的其它部分。每个数据库都有一个主要数据文件。主要数据文件的推荐文件扩展名是 .mdf。
次要数据文件
次要数据文件包含除主要数据文件外的所有数据文件。有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。
日志文件
日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是 .ldf。
SQL Server 2000 不强制使用 .mdf、.ndf 和 .ldf 文件扩展名,但建议使用这些扩展名以帮助标识文件的用途。
数据库的其他属性:
文件存放位置,分配的初始空间,属于哪个文件组
文件增长:可以按百分比或实际大小指定增长速度
文件容量设置:可以指定文件增长的最大值或不受限
引MSDN:SQL2000里的文件和文件组的主要作用是什么?在具体应用的时候,可以把特定的表,索引和大型的文本或者图像数据放到专门的文件组里,请问这需要如何设置呢?我在建了两个文件组和四个数据文件之后,不知道怎么把表,索引之类的数据库对象指定到文件或者文件组里,请大虾指点? 谢谢!
下面的代码是在SQL Server 2000上创建名为 MyDB 的数据库
该数据库包括1个主要数据文件、2个用户定义的文件和1个日志文件
ALTER DATABASE语句将用户定义文件组指定为默认文件组。
之后,通过指默认的文件组来创建表,并且将图像数据和索引放到指定的文件组中。
最后,将文件组中的指定数据文件删除
USE master
GO
--A. 创建数据库 MyDB
CREATE DATABASE MyDB
ON PRIMARY --主文件组和主要数据文件
( NAME='MyDB_Primary',
FILENAME= 'c:\MyDB_Prm.mdf'),
FILEGROUP MyDB_FG1 --用户定义文件组1
( NAME = 'MyDB_FG1_Dat1',
FILENAME = 'c:\MyDB_FG1_1.ndf'), --次要数据文件1
( NAME = 'MyDB_FG1_Dat2',
FILENAME = 'd:\MyDB_FG1_2.ndf'), --次要数据文件2
FILEGROUP MyDB_FG2 --用户定义文件组2
( NAME = 'MyDB_FG1_Dat',
FILENAME = 'e:\MyDB_FG2.ndf') --次要数据文件
LOG ON --日志文件
( NAME='MyDB_log',
FILENAME ='d:\MyDB.ldf')
共创建5个文件,
1:'MyDB_Primary' 主要文件组 'c:\MyDB_Prm.mdf'
2:'MyDB_FG1_Dat1' MyDB_FG1自定义文件组 'c:\MyDB_FG1_1.ndf'
3:'MyDB_FG1_Dat2' MyDB_FG1自定义文件组 'd:\MyDB_FG1_2.ndf'
4:'MyDB_FG1_Dat' MyDB_FG2自定义文件组 'e:\MyDB_FG2.ndf'
5:'MyDB_log' 日志文件 'd:\MyDB.ldf'
--B. 修改默认数据文件组
ALTER DATABASE MyDB MODIFY FILEGROUP MyDB_FG1 DEFAULT
GO
--切换到新建的数据库 MyDB
USE MyDB
--C. 在默认文件组MyDB_FG1创建表,并且指定图像数据保存在用户定义文件组MMyDB_FG2
CREATE TABLE MyTable
( cola int PRIMARY KEY ,
colb char(8) ,
colc image )
TEXTIMAGE_ON MyDB_FG2
--在用户定义文件组MyDB_FG2上创建索引
CREATE INDEX IX_MyTable ON MyTable(cola) ON MyDB_FG2
GO
--D. 将要删除数据文件MyDB_FG1_Dat1上的数据转移到其他数据文件中,并且清空数据文件MyDB_FG1_Dat1
DBCC SHRINKFILE(MyDB_FG1_Dat1,EMPTYFILE)
--删除数据文件MyDB_FG1_Dat1
ALTER DATABASE MyDB REMOVE FILE MyDB_FG1_Dat1
可以修改成这样:
USE master
GO
--A. 创建数据库 MyDB
CREATE DATABASE MyDB
ON PRIMARY --主文件组和主要数据文件
( NAME='MyDB_Primary',
FILENAME= 'c:\MyDB_Prm.mdf'),
FILEGROUP MyDB_FG1 --用户定义文件组1
( NAME = 'MyDB_FG1_1',
FILENAME = 'c:\MyDB_FG1_1.ndf'), --次要数据文件1
( NAME = 'MyDB_FG1_2',
FILENAME = 'd:\MyDB_FG1_2.ndf'), --次要数据文件2
FILEGROUP MyDB_FG2 --用户定义文件组2
( NAME = 'MyDB_FG2',
FILENAME = 'e:\MyDB_FG2.ndf') --次要数据文件
LOG ON --日志文件
( NAME='MyDB_log',
FILENAME ='d:\MyDB.ldf')
文件名与文件存放地保持一致
阅读(801) | 评论(0) | 转发(0) |