为文本数据创建索引

比较长的文本字段,比如存储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的问题。



原文地址:https://www.cnblogs.com/leftfist/p/4257938.html