查看了一些关于数据库表分区的文章,发现有的是建立一个文件组,然后在这组里建立多个文件,有的是建立多个文件组,然后每组一个文件,请问这2中方式有什么区别,哪种最适用,谢谢!

解决方案 »

  1.   

    如果存储底层已经有raid10的话,就不用考虑分组的问题了。意义不大。
      

  2.   

    设计分区以提高查询性能
    SQL Server 2005
    其他版本根据经常执行的查询类型和硬盘配置,对表或索引分区可能会提高查询性能。
    对联接查询分区如果经常执行的查询涉及两个或多个已分区表之间的同等联接,则这些查询的分区依据列应该与联接表所基于的列相同。另外,应当已配置了这些表或它们的索引。这意味着它们要么使用同一命名分区函数,要么使用在以下方面基本相同的不同函数:    具有相同数量的用于进行分区的参数,对应的参数具有相同的数据类型。
        定义了相同数量的分区。
        定义了相同的分区边界值。这样一来,SQL Server 查询优化器就可以更快地处理联接,因为分区可以自行联接。如果查询联接的是联接字段未配置或未分区的两个表,则分区的出现实际上会降低而不是提高查询处理速度。
    利用多个磁盘驱动器可以将分区映射到文件组,每个分区访问一个不同的物理磁盘驱动器,以便提高 I/O 性能。当 SQL Server 针对 I/O 操作执行数据排序时,它会首先按分区对数据进行排序。在此方案下,SQL Server 每次访问一个驱动器,这样可能会降低性能。为了提高性能,更好的解决方案是通过设置 RAID 将多个磁盘中的分区数据文件条带化。这样一来,尽管 SQL Server 仍按分区对数据进行排序,但它可以同时访问每个分区的所有驱动器。不管所有分区是在一个文件组中还是在多个文件组中,都可以设计此配置。有关 SQL Server 如何处理不同的 RAID 级别的详细信息,请参阅 RAID 级别和 SQL Server。
      

  3.   

    參照
    http://msdn.microsoft.com/zh-cn/library/ms175533%28v=SQL.90%29.aspx