一个文件组可以被多个数据库使用

如题所述

  1、一个文件或文件组不能由多个数据库使用。例如,任何其他数据库都不能使用包含 sales 数据库中的数据和对象的文件 sales.mdf 和 sales.ndf。

  2、一个文件只能是一个文件组的成员。

  3、一个文件组可以包含多个文件,一个数据表在创建时可以指定要将数据放在那一个文件组上,而没有办法指定是要放在哪一个文件上,文件组对组内的所有文件都使用按比例填充策略。

  4、事务日志文件不能属于任何文件组。

使用文件和文件组时的一些一般建议:

大多数数据库在只有单个数据文件和单个事务日志文件的情况下性能良好。

如果使用多个文件,请为附加文件创建第二个文件组,并将其设置为默认文件组。这样,主文件将只包含系统表和对象。

若要使性能最大化,请在尽可能多的不同的可用本地物理磁盘上创建文件或文件组。将争夺空间最激烈的对象置于不同的文件组中。

使用文件组将对象放置在特定的物理磁盘上。

将在同一联接查询中使用的不同表置于不同的文件组中。由于采用并行磁盘 I/O 对联接数据进行搜索,所以性能将得以改善。

将最常访问的表和属于这些表的非聚集索引置于不同的文件组中。如果文件位于不同的物理磁盘上,由于采用并行 I/O,所以性能将得以改善。

请勿将事务日志文件置于其中已有其他文件和文件组的物理磁盘上。

文件组对组内的所有文件都使用按比例填充策略的解析:

当数据写入文件组时,SQL Server 数据库引擎按文件中的可用空间比例将数据写入文件组中的每个文件,而不是将所有数据都写入第一个文件直至其变满为止。然后再写入下一个文件。例如,如果文件 f1 有 100 MB 可用空间,文件 f2 有 200 MB 可用空间,则从文件 f1 中分配一个区,从文件 f2 中分配两个区,依此类推。这样,两个文件几乎同时填满,并且可获得简单的条带化。

假定将数据库设置为自动增长,则当文件组中的所有文件填满后,数据库引擎便会采用循环方式一次自动扩展一个文件以容纳更多数据。例如,某个文件组由三个文件组成,它们都设置为自动增长。当文件组中所有文件的空间都已用完时,只扩展第一个文件。当第一个文件已满,无法再向文件组中写入更多数据时,将扩展第二个文件。当第二个文件已满,无法再向文件组中写入更多数据时,将扩展第三个文件。当第三个文件已满,无法再向文件组中写入更多数据时,将再次扩展第一个文件,依此类推

自己实践过程摸索的内容:

  文件与文件组的删除,如果因为以前的分区方案不合理,需要取消分区,或者按另外一种方式分区,就需要涉及到文件与文件组的删除操作,如果没有掌握正确步骤,有时候可能无法删除,会提示你“文件不为空,无法删除”或者“文件组不为空,不能删除”等等,如果不知道技巧,会很郁闷!本人就曾经经历过这样的郁闷!在百度也没找到正确答案,下面说说我自己经过摸索后得到的答案。

1、 文件的删除:首先要先清空文件里的数据,删除之前数据一定要记得先备份,可将数据复制到其他表,然后执行:

DBCC SHRINKFILE (FileName, EMPTYFILE);
文件中的内容删除后,再执行删除文件命令,DataBaseName表示数据名,FileName 表示文件名:

ALTER DATABASE [DataBaseName] REMOVE FILE FileName;
2、文件组的删除:

当文件组的文件被删除后,按正常理解,应该就可以直接删除文件组,实际是不行的,你无法删除文件组。

因为还有几个东西依赖文件组,一是分区方案,二是使用该分区方案的分区表。

所以要删除分区方案才能删除文件组。但要删除分区方案之前要先更改依赖它的分区表,使其不依赖它。

这个主要是更改分区表的分区列,使其不使用分区方案,如果实在不会更改,在表里数据已经备份的前提下,可以直接删除表来解决。

  然后再删除分区表方案,最后就可以直接删除文件组了。

总结前面的删除过程:

1、修改分区表,使其不依赖分区方案。

 2、删除分区方案(依赖要删除的文件组)。

DROP PARTITION SCHEME [Part_func_scheme_Name]
 3、直接删除文件组。

ALTER DATABASE [DataBaseName] REMOVE FILEGROUP [FGName]
DataBaseName表示数据名,FGName 表示文件组名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-10-29
不可以
1.数据文件:存放数据库数据和数据仓库对象的文件

主要数据文件(.mdf)+次要数据文件(.ndf)

主要数据文件只能有一个,存放数据库的启动信息和数据,次要文件存放主数据文件存放不下的数据

2.事务日志文件:用于恢复数据库的日志信息,扩展名为.ldf

当数据库破坏时可以用事务日志还原数据库内容

可以一个或多个

3.文件组是将多个数据文件集合起来形成的一个整体

主要文件组+次要文件组

一个数据文件只能存在与一个文件组中

一个文件组也只能被一个数据库使用

日志文件不分组,不属于任何文件组
第2个回答  2022-10-26
不可以
一个文件组也只能被一个数据库使用 日志文件不分组,不属于任何文件组 创建数据库 CREATE DATABASE 数据库名称 ON [FILEGROUP 文件组名称]
第3个回答  2022-10-28
一个文件或文件组不能由多个数据库使用。例如,任何其他数据库都不能使用包含sales数据库中的数据和对象的文件sales.mdf和sales.ndf。
第4个回答  2022-10-28
一个文件组也只能被一个数据库使用
日志文件不分组,不属于任何文件组 创建数据库 CREATE DATABASE 数据库名称 ON [FILEGROUP
相似回答