比较长的文本字段,比如存储URL的字段,可能类型为VARCHAR(300),如果要对这个字段建立非聚集索引,由于非聚集索引本身存储了索引字段的值,所以这个索引一定也比较大。耗费存储空间、内存空间不说,比较的性能也好不到哪里去。
对于这种情况,可以使用CheckSum方法创建该字段的计算列,然后为此计算列创建索引。
CheckSum,返回按照表的某一行或一组表达式计算出来的校验和值。 CHECKSUM 用于生成哈希索引。返回类型为整型:int。
这样,比较字符型字段是否相等,现在就转为了比较整型字段是否相等了,字段长度大大缩减。
CREATE TABLE Employee (EmployeeID INT, FirstName VARCHAR(50), LastName VARCHAR(50), EmailAddress VARCHAR(255), EmailAddressCheckSum AS CHECKSUM(EmailAddress))
当然,这种改动,以增加CPU负担为代价。不过,数据库的性能常常在磁盘、内存上,很少是CPU的问题。