利用索引

时间:2015-12-14 11:04:09

标签: sql sql-server indexing

我在VARBINARY(200)列上有一个索引。如何进行利用该索引的前缀查询?

我尝试了WHERE LEFT(column, 20) = @value,但没有利用索引。

我正在使用SQL Server 2014。

1 个答案:

答案 0 :(得分:2)

一种方法可能会使用between。像这样:

where column >= left(val, 20) and column < left(val, 20) + ???

我不确定究竟是什么?应该是。

也许更好的方法是使用计算列,但这假设您总是在寻找20个字节:

alter table t add column_20 as (cast(column as varbinary(20));

create index idx_t_column20 on t(column_20);

然后,等式应该使用索引:

where column_20 = @value