正在nvarchar(max)列上创建索引



我的表包含三列。如果我在select语句中选择NVARCHAR(MAX)列,我会看到较差的性能。是否可以在NVARCHAR(MAX)列上创建索引?。

CREATE TABLE TEST
(
id primary key,
product VARCHAR(50),
Title NVARCHAR(max)
)
INSERTING MILLIONS OF RECORDS....
SELECT product, Title 
FROM TEST

该表包含数百万条记录。如何为该列创建索引?它真的能提高select语句的性能吗?或者有其他方法可以改进这一点吗?

您可以使用"全文搜索索引"对NVARCHAR(MAX(进行索引。

顺便说一句,你文章中的SQL不包括WHEREJOIN,所以我很确定索引不会提高所有标题的SELECT性能。当然,这将降低插入的速度,因为如果添加额外的索引,插入的速度会较慢。

当这个问题针对SQL Server 2012发布时,任何类型的索引键(包括集群和非集群(的限制都是900字节,这在SQL Server的后续版本中有所改变。

SQL Server 2014之前

任何类型的索引键最多可以是900个字节。

所以最大nvarchar应该类似于nvarchar(448)

SQL Server 2016及以上版本

聚集索引键:900字节非聚集索引键:1700字节

所以最大nvarchar应该是类似nvarchar(848)的东西

参考:https://learn.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-服务器-2016

最新更新