针对于大的数据库,使用Filegroup可以给我们带来性能和维护上的诸多好处,比如:
1. 遇到磁盘瓶颈时可以增加磁盘,将经常访问的一些数据量大的表分散到不同的文件组,分散到不同的磁盘,这样可以提供IO的性能。
2. 如果非聚集索引非常大,可以考虑将非聚集索引和表分开放到不同的Filegroup,从而分散IO。
3. 如果数据库同时存在只读和读写的表,可以考虑将只读数据放入到只读Filegroup,而读写的表放入读写Group,这样不光IO性能会有帮助,而且只读的Filegroup的查询性能也会有提高。
4. 可以针对不同的Filegroup进行备份操作和还原,从而减少备份和还原的时间。
5. 可以针对不同的Filegroup进行DBCC CHECKFILEGROUP操作,并且多个进程并行,从而减少维护时间。
6. 在某些情况下可以将出问题的Filegroup Offline从而让SQLServer其他部分正常工作。
7.迁移会比较方便,针对于一个大的数据库,单个Filegroup就没有那么大了,数据传输过程中不容易出现问题。
当然对于小的数据库多个Filegroup就不一定需要了。