我们希望提高连接查询的效果,索引位于nvarchar(1000)
列。
是否在另一种数据类型上使用索引,例如bigint
(通过添加其他列并使用原始列上的一些哈希映射函数填充它)来提高性能?
将索引更改为nvarchar(200)
而不是nvarchar(1000)
会提高性能(假设最长值可以是200个字符)?
答案 0 :(得分:0)
索引的性能取决于索引列的行数和大小。
是的,使用hashmap添加附加列,使用和索引,这可能会略微提高SQL查询的性能,因为索引将更小并且sql将更快地在内存中使用它们。但是您必须在其他地方计算哈希映射,因此应用程序的最终性能不会更高。还有一个问题是大量数据的hashmap工作不可预测。(navchar的n值可以有1个hashmap)。所以我最后会说,这不是个好主意。
将navchar(1000)更改为navchar(200)听起来好一点。索引将更小,更快,新值的插入也将更快,最重要的是,它将是稳定的。但性能差异不会那么光彩。