SQL Server索引性能 – 长列

前端之家收集整理的这篇文章主要介绍了SQL Server索引性能 – 长列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sql Server(2005)中,我需要索引一个列(仅限完全匹配),即nvarchar(2000).什么是最具可扩展性,高性能方法

sql Server(2005)中,使用以下类型对列进行索引的实际区别是什么:

> nvarchar(2000)
> char(40)
>二进制(16)

例如.对索引二进制(16)列的查找是否明显快于对索引的nvarchar(2000)的查找?如果是这样,多少钱?

显然小在某些方面总是更好,但我不太熟悉sql Server如何优化其索引以了解它如何处理长度.

解决方法

你从错误的方向思考这个问题:

>创建满足性能目标所需的索引
>不要创建不需要的索引

无论列是二进制(16)还是nvarchar(2000)都没有什么区别,因为你不要只是不加考虑地添加索引.

不要让索引选择决定您的列类型.如果需要索引nvarchar(2000),请考虑全文索引或为列和索引添加哈希值.

根据您的更新,我可能会使用HashBytes()函数和索引创建校验和列或计算列.请注意,校验和与加密哈希值不同,因此您更有可能发生冲突,但您也可以匹配文本的全部内容,并且它将首先使用索引进行过滤. HashBytes()不太可能发生冲突,但它仍然可能,因此您仍然需要比较实际列.对每个查询和每次更改计算哈希值,HashBytes也更昂贵.

猜你在找的MsSQL相关文章