在 SQL Server 中创建数据文件 - 数据/表将如何分布?

Posted

技术标签:

【中文标题】在 SQL Server 中创建数据文件 - 数据/表将如何分布?【英文标题】:Creating data files in SQL Server - how would the data/tables be distributed? 【发布时间】:2018-10-10 09:36:32 【问题描述】:

我的数据库有 1 个数据文件 (.mdf) 和 1 个日志文件 (.ldf)。我们在这个数据库中有大约 500 个表。如果我创建更多数据文件,比如再创建 3 个(.ndf 文件),究竟会发生什么?在 .mdf 空间用完之前,这些新数据文件会一直未被使用吗?或者数据/表格将如何分布?

【问题讨论】:

【参考方案1】:

新页面分布在文件组中的所有文件中。如果您想要适当的分发,强烈建议不要在以后发布文件 - 这真的很难实现。最好创建一个新文件组、添加文件、复制表(在新文件空间上重新创建聚集索引)。

【讨论】:

空间根据可用空间按比例分配给文件组内的文件。 是的,这与许多人喜欢的文件大小的自动维护一起工作得非常糟糕。 感谢您的反馈。那么添加新文件组有什么好处吗?如果我创建一个新文件组,我是否必须手动将表/索引等分配给该文件组?最后,微软建议将不同的文件组放在不同的磁盘上(而不仅仅是不同的分区)——因此将文件组拆分到同一个磁盘上的不同分区是完全没有意义的吗? 是的,对于许多处理器的大量使用(alloocatiohns 更快)。它们主要是一种将数据分布到多个文件夹的方法,这些文件夹通常具有单独的 IO 队列。实际上,对于小型设置,您通常不会使用它们。 谢谢,非常有帮助。出于好奇,您如何定义小型设置?我们可以有 30-100 个并发用户在我们的系统上工作,进行多次更新和读取。我猜数据库的平均增长率在每年 1-5GB 之间。你认为我们适合什么地方?

以上是关于在 SQL Server 中创建数据文件 - 数据/表将如何分布?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 GeoServer 中创建 SQL Server 数据存储

从 VS 2012 在 SQL Server 2012 数据库项目中创建 SQL 代理作业

在特定数据库中创建 SQL Server 视图 [重复]

sql server中创建表时各个数据类型时啥意思??

如何在 SQL Server 中创建“脚本生成器选项”脚本?

在 Visual Studio 数据库项目/SQL Server 中创建默认数据