当前位置:首页 » 文件管理 » 主文件组可以用户创建么
扩展阅读
喝什么牛奶可以下奶 2025-05-25 04:24:40
怎样在桌面设置小组件 2025-05-25 04:22:34

主文件组可以用户创建么

发布时间: 2023-07-23 16:04:49

Ⅰ 使用数据文件和文件组应该注意哪些问题

使用数据库文件组应注意以下问题:


我们可以出于分配和管理的目的将数据库文件分为多个组。在某些情况下,我们可以通过控制将数据和索引放置到专用磁盘上的专门文件组来改善性能。包含主数据文件的文件组被称为主文件组。只有一个主文件组,如果在创建数据库时不明确地指示将文件放到某个其他的文件组,所有的数据文件都会被放在主文件组中。

除了主文件组,数据库还可以有一个或多个用户定义的文件组。我们可以在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字来创建用户定义的文件组。

注意不要混淆主文件组和主文件。

主文件总是在创建数据库时第一个列出的文件,并且它的文件扩展名一般为.mdf。主文件的一个特点就是它指向master数据库中的一张称为sysfiles1的表,该表包含属于这个数据库的所有文件的信息。

主文件组是包含主文件的文件组。该文件组包含主数据文件和所有没有放在其他专门文件组里的文件。系统表里的所有页面总是从主文件组里的文件中分配。
默认文件组

一个文件组总是会有一个DEFAULT属性。注意DEFAULT是文件组的一个属性而不是名字。在每个数据库中只有一个文件组是默认文件组。默认情况下,主文件组同时也是默认文件组。数据库所有者能够使用ALTER DATABASE语句改变默认文件组。默认文件组包含没有放在一个专门文件组里的全部的表和索引。

大多数SQL Server数据库只有一个单独的数据文件,该文件就在一个(默认的)文件组中。实际上,大多数用户都对SQL Server是如何工作的了解不够多,从而不知道文件组是什么。用户获得了对数据库更为精密的了解后,她也许会决定使用多个装置来将一个数据库的I/O分散开来。实现它最简单的方法就是在一个RAID装置上创建一个数据库文件。不过那样一来还是不需要使用文件组。随着用户对数据库的精密性和复杂度的了解达到更高的水平,她也许会发现非常需要使用多个文件——也许是为了创建一个单个装置不能提供足够空间的数据库。在这种情况下,她还是不需要使用文件组——她能够使用一个CREATE DATABASE语句来完成这个目标,该语句带的参数是一组位于不同驱动器上文件的列表。

更为资深的数据库管理员也许会决定将不同的表分配到不同的驱动器上,或者使用SQL Server 2005的表和索引分区特性,只有这时才会用到文件组。他们可以使用SQL Server Management Studio中的对象浏览器来创建位于多个文件组上的数据库。然后他们能够右击对象浏览器中的数据库名称并创建一个CREATE DATABASE命令脚本,该脚本包含所有文件组中的所有文件。它们能够保存该脚本并在需要重建这个数据库或创建一个类似的数据库时重用该脚本。

.

你也许想知道为什么会需要创建位于一个物理驱动器的多个文件之上的数据库。
通常这样做并不会对性能有所改善,但是它为我们在两个重要的方面增加了灵活性。


首先,如果我们需要在磁盘损坏时从备份还原一个数据库,那么新的数据库必须包
含与原来数据库同样数目的文件。例如,如果原来的数据库由一个12GB的大型文件
组成,我们就需要将它还原到有着同样大小文件的数据库中。如果这时没有另外一个
12GB的驱动器马上可供使用,那么我们就不能还原数据库!然而,如果最初创建的
数据库是在几个较小的文件上的,那么实际上我们就增加了还原期间的灵活性。我们
更可能找到几个4GB的可用驱动器而不是一个大型的12GB驱动器。


其次,将数据库分布到多个文件上,即使这些文件是在同一个驱动器上,也能够为
我们带来可以很方便地将数据库迁移到不同驱动器上的灵活性。如果我们在将来改
变硬件配置,就可能会有这种需要。

分配有空间的对象(也就是表和索引)被创建在一个特殊的文件组之上。如果没有指定文件组,它们会被创建在默认的文件组之上。当我们向存储在某个特定的文件组上的对象增加空间时,数据会以按比例填充(proportional fill)的方式被存储,这意味着如果在一个文件组中有一个文件的自由空间是另一个文件的两倍,那么每当从第二个文件分配一个区(extent)时,将会从第一个文件分配两个区。在本章后面部分会有对区的更多讨论。

我们也可以使用文件组来备份数据库的一些部分。因为一张表是被创建在单个的文件组之上的,所以可以通过备份放置了一些表的文件组来选择备份某一批关键表。我们也可以通过两种方式来还原单个的文件或文件组。首先,我们可以对数据库进行部分还原并且只是还原文件组的一个子集,该子集必须包括主文件组。一旦主文件组还原完毕,数据库就马上可用,但是只有在已还原的文件组上的对象才会可用。部分还原文件组的一个子集是对一个问题的解决方案。该问题就是如何允许非常大型的数据库(VLDB,very large database)在限定的时间窗口内可用。

Ⅱ 数据库中的文件组是神马

SQL文件组就是文件的逻辑集合。它的目的是为了方便数据的管理和分配.文件组可以把指定是文件组合在一起。
在首次创建数据库,或者以后将更多文件添加到数据库时,可以创建文件组。但是,一旦将文件添加到数据库,就不可能再将这些文件移到其它文件组。
一个文件不能是多个文件组的成员。表格、索引以及 text、ntext 和 image 数据可以与特定的文件组相关联。这意味着它们的所有页都将从该文件组的文件中分配。
有三种类型的文件组:
主文件组
这些文件组包含主数据文件以及任何其它没有放入其它文件组的文件。系统表的所有页都从主文件组分配。
用户定义文件组
该文件组是用 CREATE DATABASE 或 ALTER DATABASE 语句中的 FILEGROUP 关键字,或在 SQL Server 企业管理器内的"属性"对话框上指定的任何文件组。
默认文件组
默认文件组包含在创建时没有指定文件组的所有表和索引的页。在每个数据库中,每次只能有一个文件组是默认文件组。如果没有指定默认文件组,则默认文件组是主文件组。
最多可以为每个数据库创建 32 767个文件组。文件组只能包含数据文件。事务日志文件不能是文件组的一部分。
说明 文件组不能独立于数据库文件创建。文件组是在数据库中对文件进行分组的一种管理机制。