今天才發現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后面的寫法就可以了
評論這張
新聞熱點
疑難解答