Sql Server 2005 哈希索引的实现

王朝学院·作者佚名  2011-12-23
窄屏简体版  字體:   |    |    |  超大  

今天才发现sql server 里面也有哈希索引,真是罪过。用数据库这么久了。

还是进入正题吧~~

下列示例显示使用 CHECKSUM 生成哈希索引。通过将计算校验和列添加到索引的表中,然后对校验和列生成索引来生成哈希索引。

– Create a checksum index.

SET ARITHABORT ON;

USE AdventureWorks;

GO

ALTER TABLE PRoduction.Product

ADD cs_Pname AS CHECKSUM(Name);

GO

CREATE INDEX Pname_index ON Production.Product (cs_Pname);

GO

校验和索引可用作哈希索引,尤其是当要索引的列为较长的字符列时可以提高索引速度。校验和索引可用于等价搜索。

/*Use the index in a SELECT query. Add a second search

condition to catch stray cases where checksums match,

but the values are not the same.*/

SELECT *

FROM Production.Product

WHERE CHECKSUM(N’Bearing Ball’) = cs_Pname

AND Name = N’Bearing Ball’;

GO

对计算列创建索引将具体化为校验和列,对 ProductName 值所做的任何更改都将传播到校验和列。也可以直接对索引的列生成索引。然而,如果键值较长,则很可能不执行校验和索引甚至常规索引。

上面的内容来自sql server 2005 的帮助文档,checksum函数

补充一下创建了cs_Pname 列后,cs_Pname是一个计算列,就是说你在插入数据的时候不用管它。数据库自己会自动计算它的值。

在查找的时候就可以用上面的例子,注意一下where后面的写法就可以了

评论这张

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航