跨一组分区表的 DPV 是实现此目标的唯一干净选项,例如跨 tblSales2007、tblSales2008、tblSales2009 的 DPV,然后每个相应的销售表再次分区,但它们可以通过不同的键进行分区. 在操作弹性方面这样做有一些非常好的好处(一个分区表脱机不会降低 DPV - 它仍然可以满足对其他时间线的查询)
hack 选项是创建 2 列的任意散列并存储每条记录,并按它进行分区。您必须为每个查询/插入等生成此哈希,因为无法计算分区键,它必须是存储值。这是一个 hack,我怀疑会失去比你获得的更多的性能。
但是,您确实必须考虑特定的管理问题/ DR 超过数据量,如果数据量非常大并且您以主要读取机制访问它,那么您应该查看 SQL 'Madison',它将在这两个数量上都大幅扩展行数以及数据的总体大小。但它真的只适合99.9%读类型的数据仓库,不适合OLTP。
我的生产数据集位于“数十亿”括号中,它们驻留在分区表系统上并提供非常好的性能——尽管其中大部分是基于系统底层的硬件,而不是数据库本身。扩大到这个水平不是问题,我知道其他人也远远超出了这些数量。
每个表的最大分区数保持在 1000,据我记得关于此的对话,这是一个由执行的测试设定的数字 - 由于技术限制,不是一个合适的数字。