我还没有在网上找到一个好的答案。
问题:我有一个2TB的数据库,只有一个表(存档)。不幸的是,硬盘很快就会满了,我需要以某种方式分割数据。在短期内不可能对硬盘进行扩展。但是还有另一个硬盘,我可以在上面存储数据。这个有1TB大小。数据库只有一个主文件组和一个文件。如果我向文件组添加一个新文件,我是否可以将该文件放在1TB上,然后数据库将其数据写到那里?
如果我向文件组添加一个新文件,我可以将该文件放在1TB上,然后数据库将其数据写入那里吗?
是的。SQL Server使用"比例填充算法";当一个文件组有多个文件时。
文件组在所有文件中使用比例填充策略在每个文件组中。当数据写入文件组时,SQL服务器数据库引擎写入的数量与可用空间成正比在文件中写入到文件组内的每个文件,而不是全部写入将数据保存到第一个文件,直到满为止。然后写入下一个文件。例如,如果文件f1有100 MB的空闲空间,文件f2有200 MB的空闲空间Free时,从文件f1中给出一个区,从文件f2中给出两个区,并且等等。这样,两个文件几乎同时被填满,并且实现简单的条带化。
文件和文件组填充策略
因此,如果您添加一个新文件,所有(或几乎所有)的新分配将来自该文件。因此,您可以通过在主文件组中添加新文件来轻松地添加可用空间。
在主文件组中添加一个新文件,数据将根据您的要求分布在另一个磁盘上。甚至还可以添加更多的日志文件。在您的情况下,如果日志文件的大小很大,那么您可以将日志文件(.ldf)移动到另一个磁盘。