Sql server SQL Server 2005/2008-多个文件组?
从本质上说,我是一名开发人员——但有时,客户没有一个像样的DBA来处理这些问题,所以我被要求决定 在处理规模合理的SQL Server数据库(任何比Northwind或AdventureWorks更大的数据库)时,您的策略/最佳做法是什么?您是否使用多个文件组?如果是:有多少?为什么 您根据什么标准来决定何时放弃“一个文件组解决一切问题”的做法:Sql server SQL Server 2005/2008-多个文件组?,sql-server,sql-server-2008,sql-server-2005,database-design,filegroup,Sql Server,Sql Server 2008,Sql Server 2005,Database Design,Filegroup,从本质上说,我是一名开发人员——但有时,客户没有一个像样的DBA来处理这些问题,所以我被要求决定 在处理规模合理的SQL Server数据库(任何比Northwind或AdventureWorks更大的数据库)时,您的策略/最佳做法是什么?您是否使用多个文件组?如果是:有多少?为什么 您根据什么标准来决定何时放弃“一个文件组解决一切问题”的做法: 数据库大小 数据库复杂性 可用性/可靠性要求 还有什么 如果您使用多个文件组,您会使用多少个文件组?一个用于数据,一个用于索引,一个用于日志?数据
- 数据库大小
- 数据库复杂性
- 可用性/可靠性要求
- 还有什么
如果您使用多个文件组,您会使用多少个文件组?一个用于数据,一个用于索引,一个用于日志?数据有几个(多少个)?您选择文件组的原因是什么-为什么要使用确切数量的文件组:-)我已经开发了一系列的数据库,我们唯一使用文件组的时候是磁盘空间不足,我们必须在另一个磁盘轴上创建新的文件组。我相信这并不理想的原因有很多,但这是事实。微软培训的最佳实践方法如下:
- 日志文件放在单独的物理驱动器上
- 数据文件放在单独的物理驱动器上
- 多文件组:当某个表非常大时。事务数据库(单独的物理驱动器)中经常出现这种情况
- 多个文件组:使用范围或希望将查找数据拆分为只读数据库文件时(单独的物理驱动器)
Marc通常,您应该只拥有一个主文件组和一个日志文件 有时,当您有非常静态的数据时,您可以创建包含此静态数据的第二个文件组。然后可以将文件组设置为只读,从而提高性能。毕竟,这是相当静态的数据。如果只读行数较少(如查找表值),则不值得这样做。但对于某些内容(如仍可以读入的存档内容),这可能是一个很好的选择 我是从你那里得到这个主意的
HTH.维护多个文件组有助于减少I/O负担。它还允许您灵活地进行存储,您可以轻松备份文件组,而不是单个文件,并将每个文件组分成一个单独的磁盘驱动器。除其他原因外,如果您要对表进行分区,则附加文件组是有意义的。如果有许多与该表不同的where条件相竞争的读取,那么这是有意义的。您可以将每个分区配置为反映一个这样的where条件,并位于不同的磁盘上,从而将每次读取发送到另一个磁盘,从而实现并行读取并减少冲突