微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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也更昂贵.

原文地址:https://www.jb51.cc/mssql/77713.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐