摘要:为什么要说也呢?请参见http://www.sql-club.com/net2004/archive/2005/09/13/199.aspx
Partition一直就是一个很难用于实际应用的功能。为什么呢?选择分区字段是一个关键。必须要能使数据均匀的分散到不同的物理存储,又能使分区字段能够包含查询条件。在smaple中大多是以ID或者Time作为分区字段,但是实际应用中,大部分查询都不会在这两个字段上。以MSN为例,我登录的时候,要查询where username = 'luke@hotmail.com' --这不是我的passport大部分的查询也是基于username的。那么,我们以username为分区条件如何?可是这样会造成分区不均衡,显然s开头的就比x开头的要多许多。当然,我们可以分析出字母序的分布概率,但是这是一个挺麻烦的工作,如果还考虑中文,就更加的麻烦了。怎么办呢?MSN采用的方法是对username的hash值进行分区,值得借鉴哦~hash的原理我不多介绍了,它有一个功能就是可以把字符串的hash值做到基本平均的分布。
SQL 2005自带一个hash函数,语法如下HashBytes ( '', { @input | 'input' } )支持MD2, MD4, MD5, SHA, or SHA1 算法返回值varbinary (maximum 8192 bytes)...[
阅读全文]