我正要开始练习重新组织分区表,我一直在寻找最佳实践或建议。
假设我有 10 亿行表和 8 个逻辑磁盘可用于该表。
我的问题是,创建一个将数据划分为 8 个文件组并使索引存储与数据对齐的分区方案是否更好...
或者最好为数据创建 4 个文件组,为索引创建 4 个文件组(未对齐),然后将每个文件组放在一个逻辑磁盘上?
欢迎任何建议或意见。
首先也是最重要的:这些逻辑磁盘最好由至少 8 个不同的物理磁盘支持。如果您要对在同一物理存储(相同轴)上创建的 8 个逻辑磁盘进行负载平衡,那么您就是在浪费时间。
最好的(也是最简单的!)选项是创建一个包含 8 个文件(大小相等且预生成)的单个文件组,每个文件都在一个主轴上,然后将表和索引放在这个文件组中。SQL Server 将在文件之间平均平衡数据。
分区是 ETL 切入和切出的功能。它不应该用于性能,因为您可以希望与原始表具有相同的性能。为了提高性能,请使用设计良好的聚集索引,该索引与典型负载相匹配。
如果您的数据真的是预先知道的,并且索引使用特性非常好理解,那么您可以尝试在它们自己的文件组上明确地平衡它们。但是试图通过手动控制来解决这个问题更有可能造成伤害而不是好处。具有 8 个文件的单个文件组的更简单选项在 99% 的情况下比手动显式控制更好地平衡 IO。
| 归档时间: |
|
| 查看次数: |
3027 次 |
| 最近记录: |