Sql Server - nvarchar 字段上的索引

标签 sql sql-server nvarchar

保持 nvarchar 字段唯一的好方法是什么。我有一个存储 MP3 文件 URL 的字段。 URL 长度可以是从 10 个字符到 4000 个字符的任意值。我尝试创建索引,但它说无法创建索引,因为总长度超过 900 字节。

如果该字段未建立索引,则搜索任何内容都会很慢。我使用 C#、ASP.net MVC 作为前端。

最佳答案

您可以使用CHECKSUM命令并将索引放在带有校验和的列上。

--*** Add extra column to your table that will hold checksum
ALTER TABLE Production.Product
ADD cs_Pname AS CHECKSUM(Name);
GO

--*** Create index on new column
CREATE INDEX Pname_index ON Production.Product (cs_Pname);
GO

然后您可以使用以下查询快速检索数据:

SELECT * 
FROM Production.Product
WHERE CHECKSUM(N'Bearing Ball') = cs_Pname
AND Name = N'Bearing Ball';

这里是文档:http://technet.microsoft.com/en-us/library/ms189788.aspx

关于Sql Server - nvarchar 字段上的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624365/

相关文章:

c# - 我的 ListView 显示重复项

c# - SQL 报告服务 - 在报告中查找项目 - 加载

c# - Entity Framework 代码优先的 XML 字段

sql-server - 为什么非对称 key 更安全?

sql-server - Grails查询强制对字符串参数进行隐式转换

sql - 使用 SQL 计算跨客户的运行计数和运行总计

java - 如何使用 JPA 和 Hibernate 返回一个 Map,其中键是实体属性,值是实体

php - ajax返回成功但mysql数据库未更新

oracle, utf-8, NVARCHAR2,还有很多困惑

sql-server - SQL性能: Is there any performance hit using NVarchar(MAX) instead of NVarChar(200)