我当前的数据库是SQL Server 2008,将升级到SQL Server 2014.我无法确认SQL Server 2014是否支持散列分区。我有一个包含大约29M记录的表。这张桌子增长得非常快。在过去的一年里,它每3-4个月翻一番。我想根据客户端ID对我的表进行水平分区。我在线搜索,无法确认是否支持。
答案 0 :(得分:2)
不,SQL Server不支持散列分区。正如Ben所说,您可以使用散列函数和持久计算列来自行滚动。建议使用时方案是当最后一页上的闩锁争用减慢插入时,没有其他时间。请阅读Hash Partitioning, SQL Server, and Scaling Writes了解详情。
这张桌子增长得非常快。在过去的一年里,它每3-4个月翻一番。
那么,这与散列分区或任何分区有什么关系呢?分区没有性能优势,其目的是数据存储管理。要获得对大型数据集的高效访问,请考虑索引。对于分析工作负载,请使用columnstores。有关一般性能问题,请阅读How to analyse SQL Server performance。
Kendra Little有一篇不错的文章How To Decide if You Should Use Table Partitioning。
答案 1 :(得分:1)
不是直接的,但你可以“假装”。具体来说,如果您想出自己的散列函数(比如ClientID模数«所需的分区数»),您可以将其用作分区键(或其中的一部分)。