我当前的数据库是SQL Server 2008,将升级到SQL Server 2014。我无法确认SQL Server 2014是否支持哈希分区。我有一个表,其中有大约29M条记录。这个表的增长速度非常快。在过去的一年里,它每3-4个月就会翻一番。我想根据一个客户端id对我的表进行水平分区。我已经在网上搜索过了,不能确认他们是否支持。
发布于 2016-07-18 02:11:28
不支持,SQL Server不支持哈希分区。正如Ben所说,您可以使用散列函数和持久化计算列来滚动自己的列。建议这样做的唯一情况是,最后一页上的锁存争用正在减慢插入速度,而不是其他时间。有关更多详细信息,请阅读Hash Partitioning, SQL Server, and Scaling Writes。
这个表的增长速度非常快。在过去的一年里,它每3-4个月就会翻一番。
那么,这与散列分区或任何分区有什么关系呢?分区没有给性能带来任何好处,它的目的是管理数据存储。对于对大型数据集的高性能访问,请考虑索引。对于分析工作负载,请使用列存储。有关一般性能问题,请阅读How to analyse SQL Server performance。
Kendra Little有一篇不错的文章How To Decide if You Should Use Table Partitioning。
发布于 2016-07-18 02:01:34
不是直接的,但你可以“假装”。具体地说,如果您提出了自己的散列函数(例如ClientID取模为所需分区数»),则可以将其用作分区键(或其中的一部分)。
https://stackoverflow.com/questions/38416941
复制相似问题