前言
为Join on 或 where 的外键列,适当地创建索引,供SQL查询优化器使用,以提高数据的访问速度,减少用户等待的时间。
问题
创建索引时,收到SQLSERVER 2017 警告:非聚集的 索引的最大键长度为 1700 个字节。为XXX创建的索引的最大长度为 XXXX 个字节。当可变字段的实际值长度超出限制时,对于某些大值组合,插入/更新操作将失败。虽然收到警告,但索引仍然成功地被创建。
分析
索引包含的字段,含诸如varchar数据类型(可变长字段)。以其最大长度计算,则索引值的各列总长度大于索引最大值限制。但索引字段的实际存储的值是小于等于可变长字段最大长度的,所以只是警告,而不是报错。
解决
1、减少索引字段的数量、长度。
2、保证可变长字段在内的各字段总长度实际值不超过索引最大值限制。
以上