Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315585
  • 博文数量: 17
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1105
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-18 20:28
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友

分类: 数据库开发技术

2008-07-05 18:20:16

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) |
0

上一篇:sql001数据库设计

下一篇:sql003--建库

给主人留下些什么吧!~~